複数待ち – プログラミング – Home

通知
すべてクリア

複数待ち


さいふ
 さいふ
(@さいふ)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

サーバのプログラムで複数のソケットを作って、
クライアントからの接続を待っていると、
上手く動作しません。
1個だと上手くいきます。
何か設定等で違いがあるのでしょうか?
ポート番号は個々に持っています。
以上 ご回答をお願いします。


引用解決済
トピックタグ
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

複数のソケットをどうやってlisten,acceptしてます?
selectを使ってるのでしょうか。


返信引用
さいふ
 さいふ
(@さいふ)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

こんな感じです。
for(j = 0; j < 3; j++) {
listen(srcSock[j], 1);
}
for(j = 0; j < 5; j++) {
dstSock[j] = accept(srcSock[j], (struct sockaddr *)&dstAddr, &dstAddrSize);
}
考えたらselectは使っていません。
以上 アドバイスをお願いします。


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

> for(j = 0; j < 5; j++) {
> dstSock[j] = accept(srcSock[j], (struct sockaddr *)&dstAddr, &dstAddrSize);
> }

最初のsrcSock[0]の acceptでブロック(クライアントが接続してくる
まで待たされる)されちゃうはずです。

> selectは使っていません。

複数ソケットの場合、selectかマルチスレッドを使わんとでけんです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました