• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:自宅に固定IPを取得したサーバーがあります。(ubuntu serve)

固定IPを取得したサーバーでのデータ受信問題の解決方法は?

このQ&Aのポイント
  • 自宅の固定IPを取得したサーバーでデータ受信に問題が生じています。
  • バックグラウンドで動作させると、最初は正常にデータを受信できますが、ある時点からデータを受信できなくなります。
  • 可能な原因としては、ルータやサーバーのハード的故障、クライアントのハード的故障、タイムアウトなどが考えられます。どのように解決すればいいでしょうか?

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

  • ベストアンサー
noname#140045
noname#140045
回答No.1

まず、たぶん何度やっても同じような現象が起きているでしょうから、ハード的故障ではないでしょう。 ハード故障ならば、普通2度とつながらなくなるはずです。 また、タイムアウトもまずありません。 ハード的につながっている限りは、通信していなくてもタイムアウトになることはありません。 ところで、プログラムを見るともの凄い速度でreadとwriteを繰り返しています。 これでは、当然輻輳が発生します。 sleepを入れるなどして、一定間隔で通信すればたぶん問題解決すると思います。

peekpoke
質問者

補足

すいません。。説明不足でした。 記載したソース内のreadは同期された関数を想定しています。 文字列が受信されるまでは、待ち状態になっています。 記載したソースではタイムアウトの設定をおこなっていないため(デフォルトではタイムアウトの設定は無効になっています)、アプリ上タイムアウトになっていないかもしれませんが、 OSでタイムアウトにしている可能性は考えられますか? というのも、数分おきにクライアントから任意のパケットを送りつけていると、問題の現象が発生しませんでした。 あと、別件で気になるのはsshでクライアントから上記サーバにアクセスし、 emacsなどで文字を書いていると、数分後(ある決まった時間ではない) 文字が打てなくなり、数秒間待つとバッファにたまった文字が一気に書き込まれるという現象がおきます。(sshd,sshのタイムアウトの設定は適切におこなっているつもりです。) これといって調べる手段が思い浮かびません。。

関連するQ&A