2013-04-06 30 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