C でPOSIX スレッドを使用して、単純なマルチクライアント サーバー通信プログラムを作成しています。新しいクライアントが接続されるたびに、つまり のルーチンの後にスレッドを作成しています。accept(...)
main()
サーバーがクライアントを永遠に受け入れ続けるように、accept(...)
と をループのpthread_create(...)
中に入れました。では、スレッドが終了した後while(1)
のルーチンはどこに記述すればよいでしょうか。pthread_join(...)
詳細情報: スレッドの「開始ルーチン」内でpoll()
& thenrecv()
関数を使用し、再びwhile(1)
ループ内でクライアントの可用性を継続的にポーリングし、クライアントからデータを受信しました。スレッドは次の場合に終了します。
1)poll()
エラー イベントを返すか、クライアントがハングアップします。
2)recv()
値 <= 0 を返します。
言語: C
プラットフォーム: Suse Linux Enterprise Server 10.3 (x86_64)