1

序文:

テレメトリ データを受信する非同期ソケット サーバーがあり、リモート デバイスからデータが送信されない場合は、コマンドを送信してデータを要求することができます。リスナーとコマンドの処理は別のスレッドで行われます。リスナーは 1 つのポートでリッスンし、コマンドは別のポートで送信します。

私の全体的な質問は次のとおりです。最初に「接続」メソッドを呼び出さなくても、C#でソケットが接続されているかどうかを確認できますか? お客様のデバイスはサーバーへの接続を確立し、常に接続されたままになります (サービス範囲が低下したり、バッテリーが消耗したりしない限り)。可能であれば、接続されているすべてのソケット オブジェクトをメモリ内で追跡する必要は避けたいと思います。

正直なところ、私が求めていることが実現可能かどうかさえわかりません。人の考えを聞きたい。

4

1 に答える 1

1

ソケット情報がわかっている場合は、おそらくGetExtendedTcpTableを呼び出して、ソケットの状態 (「確立済み」かどうか) を取得できます。

この関数のピンボークの例については、次を参照して ください。

于 2013-05-14T19:56:12.470 に答える