■19840 / ) |
Re[4]: TCP/IP通信の送信メソッドでエラー検知できませんか? |
□投稿者/ 夢若 (4回)-(2008/05/30(Fri) 19:52:13)
|
■No19836 (はつね さん) に返信 > http://msdn.microsoft.com/ja-jp/library/bbx2eya8(VS.80).aspx > ここに「非同期クライアント ソケットでは、ネットワーク操作の完了までアプリケーション > の実行が中断される、ということはありません。」と明記されているように、非同期のとき > は、完了まで待たずに(つまりエラーを検出まで待たずに)次のステップに実行が移り、 > 同期だったら、完了をまってから次のステップに進みます。 > > しかし、同期であれば大抵の場合タイムアウトまで待ってからエラーで返却されてくるので > エラーがその行で検出できますが、TCP/IP的には必ずしもすべてが検出できるとは限らない > はず。 ふむふむ…そうなのですか。 勉強になります。 C言語でsend()を行うと送信できなかった時は戻り値が-1で帰ってくることにより送信エラーを検知出来ますよね? それと同じような事が出来ないかと思っているのですが、同期式、非同期式に関わらずなにか良い方法はないでしょうか…
>>をやりたいかと言うと、送信できなかった際に相手(サーバ側)のエラーなのか、こちら >>(クライアント側)のエラーなのかの切り分けがしたいのです。 > > 相手からdisconnectされたのならば分かりますが、通常の切断シーケンスとして検出でき > ますが、LANケーブル切断は相手側なのかこちら側なのかは分からないと思いませんか? > だって、途中のLANケーブルがはずれたときって、相手でもなく自分でもないですよね? > 分かるのは、どこかで通信経路が切断されていて、迂回経路もないって事だけ。 > LANケーブル切断に対しての意見、有難う御座います。 自分の頭の中が纏まりました。この問題は理解しました。
|
|