前提・実現したいこと
C言語で、ソケット通信処理を書いています。
複数の接続先から接続されるため、ひとつのポートで待ち受け、接続があったら、accept関数の戻り値を引数にしてスレッドを作成して、複数接続先の受信をうけつけるようにしています。
以下のページのような感じです。
http://blog.majide.com/2009/03/thread-echo-server-program/
さらに受信スレッドの他に、送信用のスレッドを立てたいと思っています。
データ送信の必要が出た際、受信スレッドと同じソケット通信を使用して送信スレッドを都度作成し、処理が終わったらスレッドが消えるようなしくみにしたいです。
実際のコードは、ソケットディスクリプタ、送信データ、送信データ長を送信スレッドのパラメータに設定して、send関数を呼んでいます。
send(sockfd, buf, len);
実際にコードを動かしてみたところ、なんとなく動作しているようには見えています。
ただ、送信スレッドにソケットディスクリプタをパラメータで渡しているため、その直前にソケット接続が切断されて、ソケットディスクリプタが無効になってしまう可能性などもあるのかと思っています。
そこでお聞きしたいのは、このようにソケット通信の受信と送信をスレッドでわけるという処理は現実的ではないのか、ということです。
もし他にいい実現方法がありましたら、なにかヒントなどいただけると助かります。
どうぞよろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/12 13:27
2018/06/13 00:42
2018/06/13 14:13