ソケット通信 – プログラミング – Home

通知
すべてクリア

[解決済] ソケット通信


よし
 よし
(@よし)
ゲスト
結合: 23年前
投稿: 23
Topic starter  

お世話になります。

早速ですが、SOKET通信について質問です。

socketやconnect等を使い、TCPクライアントのプログラムを作成しています。
クライアント <-LANケーブル1-> ハブ <-LANケーブル2-> サーバー
という構成でテストしています。

LANケーブル2を抜いた場合、クライアントで接続のエラーの検知が出来ません。
sendもエラーがかかりません。

ちなみにLANケーブル1を抜いた場合は検知できます。(select)

申し訳ありませんがよろしく御願いします。


引用未解決
トピックタグ
秋桜
 秋桜
(@秋桜)
ゲスト
結合: 21年前
投稿: 20
 

はじめまして~、
私も勉強始めたばかりでよく分かってない部分が非常に多いのですがこれだけは
はっきりと分かります、いったいどうしてほしいのでしょうか??
エラー検出ができるようにしたいのでしょうか??(多分そうなんでしょうね)

接続エラーの方はなんでなるのかはよく分からんですが、send()のほうは
エラーなんていうものはないのでは??となっていると思います。

http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/cpref/html/frlrfsystemnetsocketssocketclasssendtopic
.asp


返信引用
秋桜
 秋桜
(@秋桜)
ゲスト
結合: 21年前
投稿: 20
 

うわー、URLがなんかおかしい・・・、張りなおし~

http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemnetsockets
socketclasssendtopic.asp


返信引用
よし
 よし
(@よし)
ゲスト
結合: 23年前
投稿: 23
Topic starter  

説明不足で申し訳ありません

補足させて下さい。

エラー検知をしたいのですが、
sendとは限らず、ステータスみたいな物がわかれば
それで何とかしたいと思っています。

sendでは、送信バイト数が正常にリターンされ
送信完了のようになってしまっています。

ちなみにこれも説明不足ですが、VC6.0SP5
です。

よろしく御願いします。


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

TCP/IP の知識とか全然ないんで的外れなことを言うかもしれませんが…
上記の例で言う場合、クライアント send はハブにデータを送り出すまでの責任しか持
たず、サーバにデータを送り届けるのはハブの責任なのではないでしょうか?
でなければ、インターネットなんつーのは地球の裏側のコンピュータにデータが届い
て、その応答が戻るまで send の制御が戻らないなんていうことに…ゾっとしますね。


返信引用
たらっぽ
 たらっぽ
(@たらっぽ)
ゲスト
結合: 21年前
投稿: 1
 

相手状態等確認してから、TCPを利用ということをしたいのであれば
SNMP等を導入しないと無理ですね。
ただイリーガルな方法として
LANのコネクション断のタイムアウトを
短くすることでsocketがエラーとなり検出が可能になります。
(レジストリ操作が必要)
ただこれをするとシステム全体に影響する為
不穏な動作をします。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

どうしてもそこの部分を検出したいなら次善の策としてポーリングを行うと言う
方法もあると思いますよ。内容は何でも良いのですが、固定の電文をサーバーへ
投げて、サーバーからその応答が一定時間内に帰ってくるかどうかで判断します。
但し、送り先のサーバーが死んでいて応答が帰ってこないのか、
途中の経路が断線していて応答が帰ってこないのかまでは判断できないでしょうね。


返信引用
よし
 よし
(@よし)
ゲスト
結合: 23年前
投稿: 23
Topic starter  

皆様回答有難うございます。

どうも無理なことを質問したようで、
申し訳ありません。

なぜ検知できないのかが理解できたので
有難うございました


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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