問題タブ [disconnection]

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 に答える
236 参照

java - クライアントがクライアントを閉じた後、SocketChannel を介してクライアントにデータを送信する

私は、ユーザーがクライアントウィンドウを閉じてクライアントプログラムを終了したことを知らせるデータのバイトをクライアントが送信するクライアントとサーバーアプリケーションを持っています。問題は、サーバーがそのクライアントを破棄する前に、最後の通知をそのクライアントに送信する可能性があることです。サーバーがブロッキング モードで SocketChannel の書き込みメソッドを使用する場合、それは無期限にブロックされますか、それとも単に無視されますか? クライアントが切断される前に「切断確認」を待つ必要がありますか?

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

delphi - IndyTIdTCPServerと切断

サーバーの切断に小さな問題があります(つまり、サーバーアプリケーションから切断したいときだけです(server.active = false)。これが私の簡単なコードです:

クライアントにデータを送信する場合にのみ機能する必要があるため、onconnectプロシージャで1つのデータ行のみを読み取ります。これにはログイン名が含まれています。

私のコードでデータを送信する手順は次のようになります(それは良いですか?):

それはうまくいくように見えます-つまり。しかし、SERVER.active:= falseでサーバーを無効にしたい場合、アプリケーションがフリーズしますか?クライアントなどを解放しようとしましたが、悪いコードでは機能しません。

誰かが私を助けて、このコードのためにサーバーを停止する方法を教えてもらえますか?

Artik

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

c - Linuxソケット:クライアントプログラムで切断されたネットワークを検出する方法は?

私はACベースのLinuxソケットプログラムをデバッグしています。Webサイトで利用可能なすべての例として、次の構造を適用しました。

削除サーバーがサーバープログラムを閉じるときに、切断を検出できます。しかし、イーサネットケーブルを抜くと、send関数は-1ではなく正の値を返します。

サーバー側を変更できないと仮定して、クライアントプログラムでネットワーク接続を確認するにはどうすればよいですか?

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

c++ - ソケット切断の処理。ブースト/ウィンソック

タイトルが示すように、私は winsock と boost ソケットの両方を使用してきました。切断を検出するのが非常に困難です。

まず、切断は次の方法で検出できることを知っています。

  1. recv() / async_read() は、ソケット エラーまたは 0 を返します。
  2. send() / async_write() ... ... ...
  3. クライアントが手動で閉じられたか、中断されたか、プログラムが閉じられたか-何でも。

問題のシナリオは次のとおりです。

closesocket() で接続を閉じます。クライアントは切断を検出します - すべて問題ありません。

プログラムを閉じます。50/50 の確率で、クライアントが切断を検出できません。何らかの理由で、オーバーラップした IO WSARecv() が検出される保証はありません。

プロセスを殺します。チャンスは検出の 80% に増加します。But for the rest of the 20% - here's what's bothering me. I implemented a keep-alive ping mechanism which sends data to the server. Even if I killed the program - the server is still async_writing() to the connection - even though it's not detected or dead.

これは私が一緒に暮らさなければならないものですか?切断を検出するために全力を尽くしたので、私はちょっと迷っています...それでもまだ問題があります。

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

android - BLE チップの計算中に Android Bluetooth Low Energy 接続がタイムアウトする

私の BLE アプリケーションは、サーバー側 (BLE チップ) での計算を必要とし、時間がかかり、切断が発生します。

流れはこんな感じです。

1- Android フォンが特性値を BLE チップに書き込みます。2- チップはこの値を評価し、計算を開始します。3- 計算が開始された直後に接続が失われます。

切断を防ぐためにどのような解決策を適用できますか? 私は2つの解決策を考えています:

1- 接続間隔の変更: 現在、Android は接続間隔として 7.5 ミリ秒を使用しています。BLE チップの計算には時間がかかるため、計算中はパケットの送受信を行いません。接続間隔を長くすると、失われるパケットの数が減少します。ただし、Android フォンが新しい接続パラメーターを受け入れるという保証はありません。

2- 別のスレッドで計算を実行する: BLE チップの SDK がマルチスレッドをサポートしているとは思わないため、計算プロセスが進行している間、パケットの送受信を続けて切断を防ぎます。CSRチップを使用していますが、サポートしていないと思います。

私のポイントが間違っている場合は修正してください。

問題を解決するための他の提案はありますか?

前もって感謝します。

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

qt - Qt と QSqlDatabase を使用して切断後にデータベースに再接続する正しい方法

切断時にQt4を使用してデータベースに再接続する正しい方法は何ですか?

ODBC経由でSql Server 2012を使用しています。SELECT 1クエリを使用して切断を検出した場合

next() メソッドを使用しようとしている他の開いている SqlQueries (ドライバー内) で例外を受け取ります。

データベースで何もせず、同じデータベースを使用して新しいクエリを実行しようとすると、すべての exec() が false を返し、「接続エラー」という警告が表示されます。

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

java - javax.comm.portinuseexception 現在所有しているポート

rs232 経由でデバイスに接続するプログラムを作成しました。接続を閉じて、同じアプリケーションから再度開き直そうとするまで、すべて問題なく動作します。次の例外が発生します。

アプリケーションを完全に閉じて再起動すると、ポートに再び接続できます。しかし、アプリケーション全体を閉じることなく、そのポートを再度使用する必要があります。以下に示すようにポートを閉じようとしましたが、思いどおりに機能しません。

この例外を回避するには、どのようにポートを閉じる必要がありますか?

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

ios - Game Center で自発的にプレーヤーが切断される解決策はありますか?

このトピックに触れる他のさまざまなスレッドがあり、多くの解決策が提供されましたが、どれも実際には機能しないため、もう一度やり直すことにしました.

iOS 6 で発生し始め、iOS 8 で慢性化した問題は、明確な理由もなく Game Center が自発的にプレーヤーを切断することです。私のゲームでは、2 人から 4 人のプレイヤーが参加し、1 秒あたり 10 パケットから 20 パケットというかなりの速度でデータを相互に送信できます。ゲームはスムーズに実行され、データの損失や遅延の兆候はありません。しかし、突然 1 人のプレイヤーが突然データの送受信を停止し、20 秒後にタイムアウトしてゲームから切断されます。これは通常、残りのプレイヤーが警告なしに突然切断される原因となるカスケードをトリガーします。

別のスレッドでは、信頼できるデータ パケットが原因で問題が発生したと考える人もいました。これはそうではありません。すべてのデータを信頼できないものにしてみましたが、違いはありませんでした。他の人は、ルーターでダブルNATを有効にしたことが原因であると示唆していますが、そうではありません.

通常、この問題は散発的に発生しますが、現在取り組んでいる新しいゲームでは、3 人または 4 人のプレイヤーの試合で 100% の確率で発生し、2 人のプレイヤーの試合でも時々発生します。すべてのデバイスが WiFi で私のオフィスにある場合、それは起こりません。ただし、1 つのデバイスを携帯電話に接続すると、毎回失敗します。または、2 台のデバイスが WiFi でオフィスにあり、他の 2 台が WiFi で全国にある場合、失敗します。

Game Centerには明らかに問題がありますが、これは私を完全に殺しています。正常に動作しているように見えても、Game Center がプレイヤーとの接続を自発的に失う理由を理解する上で、誰か進展がありましたか?

0 投票する
5 に答える
11954 参照

android - Androidはインターネット接続を自動的にチェックします

Hello world 自動的にインターネットに接続しているか、切断されているかを常に検出する方法。例: 接続して 3G または Wi-Fi をオフにすると、3G または Wi-Fi をアクティブにしてから 3 秒後にトーストに接続が切断されたことが表示されます。

私はこの方法を使用しますが、アプリケーションの起動時に接続の状態を通知しますが、アプリケーションでのナビゲーション中は通知しません。

お願い助けて