• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:NetworkStreamからのRead()で、処理が止まる(C#))

C#でNetworkStreamからのRead()で処理が止まる

このQ&Aのポイント
  • C#のサーバーで、NetworkStreamからのRead()で処理が止まる場合、クライアントが何も書き出さないとプログラムが待機状態になり、接続が切れることがある。
  • Readは終端-1がくるまで待機してしまうため、送られてくるデータがない場合にも待機してしまう。
  • 処理を進めるためには、あらかじめデータの存在を確認するか、一定時間でデータが来ない場合に次の処理に移すなどの対策が必要となる。

質問者が選んだベストアンサー

  • ベストアンサー
  • SafeGuard
  • ベストアンサー率33% (4/12)
回答No.1

Readする前にNetworkStreamクラスのReadTimeoutを設定すれば、 たぶん0でリターンすると思います。 今回の場合、 xxx.ReadTimeout = 5000; でいいと思います。(ミリ秒単位) 試してないのでわからないです。結果報告いただけるとありがたいです。 (たまに自分も今回のような問題に出くわすので)

rheda
質問者

お礼

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