2013-04-06 86 views
0

我正在编写客户端在c + +(套接字编程),但服务器有两个选项发送到客户端请求,也可以发送特定端口上的数据(可以说端口ZZ)。我希望客户端在ZZ端口无阻塞地监听。 我该怎么办? select()命令会帮助我吗?还是有其他技术来实现这一点。 谢谢C++客户端在不同端口上的响应

回答

1

您可以使用非阻塞模式或使用非常小的块时间(如一毫秒)。

要启用非阻塞模式,您必须配置套接字。

请参阅Beejs Guide to socket Programming了解如何操作。

+0

感谢您的回答。我怎么能把小块时间? – 2013-04-06 21:19:56

+0

看到这里的例子http://stackoverflow.com/questions/4181784/how-to-set-socket-timeout-in-c-when-making-multiple-connections(linux),在Windows上你需要检查出winapi套接字函数(winsock) – Quonux 2013-04-06 21:22:40

0

也许使用多线程是一个更好的选择。 您可以使用recive响应主线程并在另一个线程中侦听端口ZZ。

+0

是的我正在做同样的事情,但是当我创建线程来监听ZZ端口时。它只是停留在while循环中。 – 2013-04-07 10:39:40

+0

你使用什么样的协议? TCP还是UDP?如果您使用tcp,则必须先建立连接。 – 2013-04-07 12:17:27