牛、豚、鶏、どれか一つ食べられなくなるとしたら?

C#で、サーバーを作っています。
Readで読み込んで、次に、
Writeで、「ありがとうございました!!」など、
書き出しているのですが、
いままで、それなりに動いたいました。
しかし、クライアント側で、何も書き出さないと、
Read()の部分で、プログラム止まって(待機して)
しまっていることが分かりました。
クライアントが、何も書き出さないときは、
さっさと、「ありがとう・・」と書き出して、
終了したいのですが、30秒ほど待機して、
接続が切れてしまうようです(Writeもしない)。

Readは終端-1がくるまで、待機してしまうの
だと思います(文字が送られないときは、これが
ないので、待機してしまうのかな)。
例えば、送られてくるデータが、もともと無い、
ということを、あらかじめ認識し、
または、5秒くらいで、データが来なければ、
処理を次に移す、といった処理の仕方は、
できないでしょうか。
お願いします。

A 回答 (1件)

Readする前にNetworkStreamクラスのReadTimeoutを設定すれば、


たぶん0でリターンすると思います。

今回の場合、
xxx.ReadTimeout = 5000;
でいいと思います。(ミリ秒単位)

試してないのでわからないです。結果報告いただけるとありがたいです。
(たまに自分も今回のような問題に出くわすので)
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
お礼遅れてすいません(少し、忙しかったので)。
また、少し、PCをいじろうと思いますので、
この方法を、試してみます。
(ネットワークプログラムをやってきて、
この問題は、初めてなのが、不思議です)。
結果報告できたら良かったのですが、
プログラムには、体力がいるので、時間かかる
と思い、質問を閉じます。
どうもありがとうございました。
また、お願いします。

お礼日時:2006/04/12 23:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報