-2

着信接続をリッスンする必要がありますが、同時に、既に接続されているクライアントからのメッセージを受信する必要があります。ただしlisten(1)、ソケットを待機させるため、受信できません。何をすべきか?(クライアントがメッセージを送信したらすぐにメッセージを取得する必要があります)

4

1 に答える 1

1

つまり、3 つの主なオプションがあります。

  1. あなたの後に生成されるクライアントごとにスレッドを開き、accept()このコンテキストでループを実行します。read() => .... => write()

  2. select()for each の後にクライアントで使用するメイン ループを実行し、accept()自分でディスパッチを処理します。

  3. 最良のオプション - tornadogeventtwistedまたはその他の非同期ネットワーク フレームワークを使用して、これを透過的に処理します。

于 2012-06-05T15:17:21.507 に答える