Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
着信接続をリッスンする必要がありますが、同時に、既に接続されているクライアントからのメッセージを受信する必要があります。ただしlisten(1)、ソケットを待機させるため、受信できません。何をすべきか?(クライアントがメッセージを送信したらすぐにメッセージを取得する必要があります)
listen(1)
つまり、3 つの主なオプションがあります。
あなたの後に生成されるクライアントごとにスレッドを開き、accept()このコンテキストでループを実行します。read() => .... => write()
accept()
read() => .... => write()
select()for each の後にクライアントで使用するメイン ループを実行し、accept()自分でディスパッチを処理します。
select()
最良のオプション - tornado、gevent、twistedまたはその他の非同期ネットワーク フレームワークを使用して、これを透過的に処理します。
tornado
gevent
twisted