0

I'm trying to communicate between two computers through the TCP/IP protocol on C++. I'm sending and receiving on the same socket. But there is a problem, I have no indicator that the second computer is trying to send me something.

Is there any flag or indicator that tells me that someone is sending something to me and I have to receive?

4

2 に答える 2

2

select() 関数を使用して、1 つ以上のソケットでイベントを待ちます。ゼロ タイムアウトを使用すると、利用可能なデータがあるかどうかを確認することもできます。

于 2012-05-16T21:35:40.233 に答える
0

これは、特定のソケット API によって異なります。最も一般的なケースでは、受信時にハングする (または非同期ソケット API を使用してコールバックをパークする) だけで、データがあるとすぐにブロックが解除されます。一部のソケット API には、取得できるデータがあるかどうかを通知する方法がありますが、最も簡単な方法は、単純に非同期で受信し、ソケット スタックがコールバックを発生させるのを待つことです。

于 2012-05-16T21:23:51.750 に答える