2012-03-08 48 views
1

我正在设计一个使用TCP/IP的客户端服务器套接字程序。C++套接字设计

服务器侦听某个端口上,客户端程序使2个连接到服务器。一个是命令和响应,另一个是数据流。

对于命令和响应,我可以使用正常的阻塞套接字模式以接收客户机命令和发送服务器响应。

对于流数据时,服务器会等待客户端发送一个开始流命令,并开始连续的数据发送给客户端。现在的问题是我需要处理程序来监听停止流命令的连接。因此,我正在考虑使这个连接非阻塞,以便接收不会阻塞,然后进行非阻塞发送。

是实现服务器和客户端的处理程序高效的这种方法吗?

回答

1

是的,它是非常有效的。

您可以使用库,例如​​libevent

0

从效率的角度来看,服务器应当总是被设计为使用非阻塞套接字,并使用事件驱动的异步I/O架构。在服务器端应该避免阻塞套接字。

幸运的是,已经几成熟就可以使用开源框架。其中,libev是最轻量级的。