ネットワークプログラミング相談室 Port29at TECHネットワークプログラミング相談室 Port29 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト73:デフォルトの名無しさん 13/01/13 16:49:39.38 気になるならするべき 74:デフォルトの名無しさん 13/01/13 16:53:04.62 >>72 > いくらフラッシュしたところで閉じるまでにまたデータ来るかもしれんし 意味がわからん。 ひょっとして受信側で flush するとかしてるのか? 75:デフォルトの名無しさん 13/01/13 18:45:01.08 その前にflushするAPIなんてあったか?見たこと無いぞおれ 76:デフォルトの名無しさん 13/01/13 18:55:33.43 flush する API じゃないけど, setsockopt で SO_LINGER と TCP_NODELAY を突くくらいかなぁ 77:デフォルトの名無しさん 13/01/13 19:01:28.37 あと, 到達確認的な意味だと 送り側 shutdown(..., SHUT_WR) | v 受け側 if (read(...) == 0) { shutdown(..., SHUT_RDWR); } | v 送り側 if (read(...) == 0) {shutdown(..., SHUT_RD); } とか, かなぁ 78:デフォルトの名無しさん 13/01/14 02:36:54.80 クライアントのソケットで、同じポートにbindしてもエラーにならないんだけど、これってやってもおk? 下のコードの後、別々のところにconnectしても普通に通信続けられるみたいだけど。 仕様上の理由でポート固定なんだ。 local.sin_port = htons(12345); SOCKET sock1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); SOCKET sock2 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); int on = 1; setsockopt(sock1, SOL_SOCKET, SO_REUSEADDR, (char*)&on, sizeof(on)); setsockopt(sock2, SOL_SOCKET, SO_REUSEADDR, (char*)&on, sizeof(on)); bind(sock1, (sockaddr*)&local, sizeof(local)); bind(sock2, (sockaddr*)&local, sizeof(local)); 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch