ネットワークプログラミング相談室 Port29at TECHネットワークプログラミング相談室 Port29 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト744:デフォルトの名無しさん 14/06/07 15:13:58.52 pYRByoGi >>743 通常はcloseしても送信しきる先に切られることは無いので 別のことが原因と思います 745:デフォルトの名無しさん 14/06/07 15:38:02.72 8MnQl1Rb >>744 有難う、もう少し探ってみます。 746:デフォルトの名無しさん 14/06/07 16:35:42.74 ZfdboDuT >>743 >サーバとクライアントでcloseするタイミングを同期する方法はありますでしょうか? クライアントとサーバ上のアプリケーション間通信について、 以下のケースに応じて通信の終了に関する規約(プロトコル)を決める (1) データ送信が必ず一方向のケース(例:パイプ) 送信側は任意にcloseできるが、受信側ではソケットからの 終了通知(データ長=0)を待ってからcloseしなければならない (2) 要求/応答のペアからなるトランザクションが常に同一側で発生するケース(例:HTTP/FTP/SMTP) 要求メッセージ送信側は任意にcloseできるが、応答メッセージ送信側では ソケットからの終了通知(データ長=0)を待ってからcloseしなければならない (3) データ送信要求が任意の時点かつ双方の側で発生するケース 制御メッセージとして通信終了要求(例:"QUIT")と通信終了応答(例:"OK")を定義し、 正常に通信を終了させたい時は終了要求メッセージを送信し応答を待つ 要求を受信した終了受け入れ側では応答メッセージを送信して即座にソケットをcloseする 終了要求側では応答メッセージ受信を確認してからソケットをcloseする (3)のケースは複雑な手順を踏まなければならないのだから、連動テストで問題が発生してから 解決策を悩むのではなく、上流の設計工程でアプリケーション間通信プロトコルの全体を ステートマシンとして形式的に定義し、正当性を検証しておくことが望ましい 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch