ネットワークプログラミング相談室 Port29at TECHネットワークプログラミング相談室 Port29 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト215:デフォルトの名無しさん 13/06/09 13:20:01.15 >>214 話を込み入らせてしまって申し訳ないですが、 >> if (s[smax] >= FD_SETSIZE) { これは少なくともWinsockでは不要ていうか、 >socket()は平気でこれ(FD_SETSIZE)より大きいfd番号を返してくる (211) という事実があるので、削除して試した 実際、あるとgetaddrinfo()で列挙されたlisten可能ポート(うちの環境では s[0] = 116, s[120]=120となった)が全てそのif文で除外され、 bind()やlisten()まで行き着かない。削除するとうまくいく(クライアントとつながり、"hello ::1"とか出る) >FD_SETSIZEを超えたらまずいというのならその通り。 「何が」FD_SETSIZEを超えたらまずいのかいまいちどお考えいただきたい FD_ISSET(a, b)の第一引数aが超えたらfd_set構造体をオーバーランするからまずい、というのが第一義だが、 しかし、>213の上のリンク先と、>213の下のリンク先では、第一引数に書かれている内容が異なるのですじゃ 216:215 13/06/09 13:22:58.77 訂正。 誤1: getaddrinfo()で列挙されたlisten可能ポート 正1: getaddrinfo()で列挙されたlisten可能ソケット 誤2: s[0] = 116, s[120]=120となった 正2: s[0] = 116, s[1]=120となった 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch