2

ファイアウォールの背後にあるデバイスは、サーバーへのソケット接続を確立して維持します。確立された接続を介してデバイスに話しかけます。このパターンは何と呼ばれ、どこでより多くの情報、.netコード例などを入手できますか?

背景-私たちのデバイスにはシリアルポートしかなく、顧客のサイトではGSMモデムを使用しています。次に、オフィスから各モデムを呼び出してデータを取得します。問題は、モバイルブロードバンド(GPRS / UMTSなど)、特にM2M-少量のデータ用のものが安価であるということです。回線交換データ(モデムやFAXの呼び出し)は高価であり、一部の国では非推奨、サポートされていない、または利用できない場合もあります(タイ)。そのため、パターンを逆にして、モデムでGPRS+TCPソケット機能を使用しています。

定義されたデータパケットを送信し(たとえば、「シリアル番号を教えて」)、リクエストへの応答を期待するために、これを「自動データリトリーバー」に実装しました(応答全体が既知のバイト数および/または既知で到着するまで待機します)停止シーケンス)。

私が達成したいのは、シリアルポート(バッファをポーリングしてすべての新しいバイトを読み取る)やイベントモデル(SendBytes / NewBytesReceived)、またはさらに新しいもの(Reactive Extensions?)に似たものです。

私の最終的な目標は、これだけを実行し、複数のプログラムがリモートデバイスに接続できるようにする小さなサーバーです。次に、デバイス98を構成するための「構成」アプリケーションを実行し、同時に「自動データリトリーバー」がデバイス13、18、および27で動作できるようにします。

ボーナスの質問-このサーバー/パターンにどのような名前を付けますか?

4

1 に答える 1

0

ファイアウォールは、デバイスが開始した TCP 接続への応答を元のデバイスに転送するようにプログラムされています。

ファイアウォールの背後にあるデバイスは、常に接続を開始する必要があります。

サーバーは簡単です。あらかじめ定義されたポートで接続を待ってから、新しい着信接続を処理する新しいスレッドを作成するだけです。そうすれば、サーバーは同時に複数の接続を処理できます。

接続が長時間アイドル状態の場合、ファイアウォールが元のデバイスとの関連付けを失う可能性があることに注意してください。キープアライブ メカニズムを実装するか、デバイスがアイドル状態になるたびに接続を閉じることができます。

于 2012-11-26T17:03:21.383 に答える