問題タブ [socket-timeout-exception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7297 参照

java - ConnectTimeout と ReadTimeout が無限の場合の SocketTimeoutException?

重複の可能性:
接続タイムアウトと読み取りタイムアウトがデフォルト (無限) に設定されているにもかかわらず、要求タイムアウトを受信して​​いますか?

Web サービスに接続しようとすると、SocketTimeoutException約 20 秒後に を受け取りました。Web サービスをホストしている Tomcat サーバーがダウンしているため、これExceptionが予期されます。ただし、ConnectTimeout と ReadTimeout の値を設定していません。ドキュメントによると、これら 2 つのデフォルト値は無限です。

これの 1 つの可能性は、接続しようとしたサーバーに独自のタイムアウトがあることです。しかし、友人が iOS を使用して接続しようとすると、約 1 分 15 秒後に接続がタイムアウトしました。サーバーがタイムアウトを発行している場合、接続はほぼ同時にタイムアウトするはずです。彼は iOS のデフォルトのタイムアウトも使用していることに注意してください。

  • 接続と読み取りのタイムアウトが無限に設定されているのに、ソケットのタイムアウトが非常に早いのはなぜですか?
  • ソケットタイムアウトは、接続および読み取りタイムアウトとは異なりますか? もしそうなら、それはどう違うのですか?
  • ソケット タイムアウトの値を知るにはどうすればよいですか? HttpURLConnection を使用しています。
  • ソケットのタイムアウトを設定する方法はありますか? どのように?

以下は私のコードのスニペットです:

0 投票する
1 に答える
2230 参照

android - Web サービスの呼び出し時の SocketTimeout 例外

Android v4.0.3を使用してアプリケーションでWebサービスを使用していますが、 HttpTransportseショーに到達しSocketTimeoutExceptionても応答がありません。同じコードがandroid.v.2.2で完全に機能しています

logcat で次の例外が発生しました

ここにコードがあります

0 投票する
2 に答える
396 参照

c# - TimedOut 例外の後にソケットを再利用することは可能ですか?

簡単に言えば、TimedOut 例外がキャッチされた後にソケットを再利用することは可能ですか? どうすればいいですか?

長い話:

2 つのスレッドがあり、どちらも同じソケットを使用しています。1つはリモートサーバーにパケットを送信し(スレッドAと呼びましょう)、もう1つ(スレッドB)は送信されたパケットの確認パケットをリッスンしています。スレッド A は、何らかの条件が満たされたときに ( で) 一時停止し、 aが続行するのをMonitor.Wait待ちます。Monitor.Pulseスレッド B がパケットを受信すると、それが呼び出さMonitor.Pulseれ、スレッド A が引き続き処理を行います...

問題は、パケットが失われる可能性があり、スレッド A がパルスを待っている間に受信しないパケットをスレッド B が無期限に待機することです。プログラム全体が「ブロック」されます。私が最初に考えたのは、受信タイムアウトを設定し、関連する例外をキャッチすることでした。それが発生すると、Monitor.Pulseスレッド B が別のパケットを待機している間、スレッド A を続行できます。

しかし、これはうまくいきません。例外がキャッチされると、スレッド A が同じソケットを使用しているため、スレッド A が新しいパケットを送信しようとすると、ソケットが閉じてアプリがクラッシュします。

この動作を防ぐにはどうすればよいですか?

0 投票する
4 に答える
9084 参照

java - java.net.SocketTimeoutException をキャッチできないのはなぜですか?

私は単純なマルチスレッド サーバーを持っています。スレッドのコードは次のようになります。

3 分間のタイムアウトを作成したいのですが、クライアント ソケットが 3 分以内にメッセージを送信しない場合は、スレッドを閉じる必要があります...

だから私はそれを試します:

問題は、netbeans がエラー メッセージを表示することです。 ここに画像の説明を入力

私は SocketException でこれを試しましたが、同じ結果..

なぜ私はそれらを捕まえることができないのですか?

更新: thinksteep と mprabhat からの応答に基づいて、LireTrame(..) に th throw を追加しましたが、それでも例外をキャッチできません:

そうでなければこれを作るアイデアはありますか?

0 投票する
1 に答える
458 参照

android - Sprint4Gネットワ​​ークでハングしているHttpURLConnectionreadLine()

HttpURLConnectionを使用して、multipart/form-dataコンテンツタイプを介してファイルをアップロードするルーチンがあります。サーバーはアップロードされたファイルに対して何らかの処理を行い、短い応答コードを返します。これは、4GでHTC Evoを使用している1人のユーザーを除いて、これまでのすべてのケースで正常に機能します。ユーザーが3Gに切り替えると、すべてが正常に機能します。4Gの場合、アプリはwhile ((line = reader.readLine()) != null) {ソケット接続タイムアウト例外がスローされるまで待機します。接続タイムアウトを70秒に設定しています。サーバーはphpにありますここに関連するスニペットがあります

'BACKGROUND'応答が機能し、残りがタイムアウト例外までクライアントを停止させることに注意してください。私は現在これについて2つの概念を持っていますが、私は4G領域にいないので、これをテストできるのはエンドユーザーのみであり、試行回数を制限したいと考えています。私の最初の考えは、「BACKGROUND」は「FailedQA」よりもわずかに長く、もう一方は長いが数値で始まるということです。では、応答に空白を追加すると役立つでしょうか?もう1つの側面は応答時間です。'BACKGROUND'メッセージは通常、他のメッセージよりも速く送信されます。しかし、私はここに反例があるので、私は父ではありません。例:「BACKGROUND」メッセージは通常15〜20秒以内に消えます。他のメッセージは通常30〜40秒です。ただし、1つの例があります。

要約すると、これはSprint4Gでのみ発生します。問題の原因はコンテンツの長さまたは応答時間のいずれかである可能性がありますが、どちらの場合も、逆の反例があります。長さの場合を除いて、長い反例であるものは数字で始まるので、それがあります。

0 投票する
0 に答える
1631 参照

java - Mongodb Java ドライバーが散発的にデータの読み取りに失敗し、ソケット タイムアウトが発生する

私は Java 用の Mongodb ドライバーを使用しようとしていますが、非常に散発的に発生するこのバグに非常に不満を感じていますが、最も一貫して発生するのは、最初にデータベースに接続しようとしたときに発生します。どこを見るべきかについての助けは信じられないほど役に立ちます。

基本的なセットアップは次のとおりです。Play 2.0 アプリを localhost で起動し、アプリにユーザーを登録しようとします。ユーザー名を入力すると、ユーザー名が存在するかどうかを確認するクエリがデータベースに送信されます。これには 1 秒かかります (おそらく Mongo シングルトンのインスタンス化とデータベースへの接続のオーバーヘッド)。これ:

次に、ユーザーを挿入しようとすると問題が発生します (合計で約 2kb のデータです)。

これはかなり散発的に失敗しますが、if(result.getLastError().ok())ライン上で失敗する傾向があります。ランダムにポップアップするため、問題を解決することはできません。スタック トレースは一般的に次のようになります。

ここで何が起こっているのか本当に理解できないので、どんな助けも大歓迎です.

これに光を当てるかもしれない1つの注意点は、保存されたオブジェクトにロードしようとするデータが多いほど、問題がより頻繁に発生していることです。

ありがとう!

0 投票する
3 に答える
5479 参照

android - Android - setSoTimeout が機能しない

そのため、ソケットのタイムアウトが機能していません。既存の投稿で与えられたすべての指示に従いましたが、まだ機能していません (ソケット タイムアウト例外は発生しません)。これが私のコードです:

したがって、2 秒後にソケット タイムアウト例外が発生するはずですが、クライアントはそれを無視しています。何か助けはありますか?

前もって感謝します


したがって、ここにすべてのコードがあります:

0 投票する
1 に答える
2106 参照

android - Androidアプリでhttpからhttpsに変換した後のSocketTimeoutException

AndroidアプリをSSLを使用してAndroidアプリとWebサーバー間で情報を転送するように変換しようとすると、問題が発生します。(SocketTimeOutException)

認証局(CA)からPositive SSL証明書を購入し、それを正しく処理するようにサーバーを構成しました。私はそれを私のウェブブラウザでテストし、正しく動作しています。

現在、Androidアプリを変更してhttpではなくhttpsを使用しようとしていますが、自分でhttpsを使用するのはこれが初めてなので、Javaコードに実装する必要のある手順について少し混乱しています。

現在、正しいURLを使用するようにアプリを構成する設定ページで作業しています。たとえば、WebサイトのURL(http://www.mydomain.com)と、関連するページが保存されているアプリケーションフォルダー(myappfolder)を入力するアクティビティに2つのテキストフィールドがあります。

次に、次のコードを使用して接続し、接続変数が正しく構成されていることをテストします。ここで、validateurl.aspxは、ページが存在する場合にJSON文字列を返すWebページです。

(http://www.mydomain.com)変数をhttpsを使用するように変換しようとすると、上記のjava.net.SocketTimeoutExceptionが発生します。

私はこの問題をグーグルで検索し、上記のコードでURLConnectionの代わりにHttpsURLConnectionを実装する必要があることを確認したので、次のようにコードを変更しました。

しかし、私はまだjava.net.SocketTimeoutExceptionを受け取ります。私が間違っていることについてのアイデアはありますか?

0 投票する
2 に答える
18761 参照

java - androidのjava.net.Socketのデフォルトのタイムアウト値は何ですか?

私はAndroid用のモバイルアプリケーションを開発しています。そこで、ソケットを作成し、AndroidモバイルとWindowsアプリケーション(PC、ラップトップで実行)の間でデータを転送します。私はアンドロイド2.3を使用しています

モバイルサムスンギャラクシーポップ のテスト
PCとモバイルはUSBタイザリングを介して接続されています。
データは正しく転送されます。
しかし、1つの問題は、アプリケーションの途中で、モバイルUSBカプセルをシステムから抜くことによってタイタリングがキャンセルされ、例外がスローされることです。

ただし、例外が発生しない場合もあります。ソケットも閉じられていないため、データの読み取りを待機し
ます。Androidでデフォルトのソケットタイムアウト時間を送信してください。


私のサンプルコードを以下に示します


コードを使うとき


次に、0を返します。


みなさんのアイデアをお願いします。

0 投票する
1 に答える
403 参照

android - Wi-FiとGPRSでのAndroidタイムアウト例外

以下はサービスを呼び出すための私のコードですが、タイムアウト例外が発生します

エミュレータでは動作しますが、実際のデバイスでは動作しません。間違っている場合は、チュートリアルまたは例を提案してください。

ありがとう...