質問: C#(Windows環境)にて以下のようにサーバAから別ネットワークのサーバCへ 情報電文を送信するシステムの構築を検討しています。 サーバA (1分毎にデータ取得) ↓UDP (取得データ送信) サーバB (受信データチェック) ↓TCP (受信データ送信) サーバC この際、サーバB-C間の通信APはUDP受信をWindowsサービスで監視し、 受信の都度起動する想定ですが、初回起動時からTCP通信はcloseせず 持続したいと考えています。 初回起動時にconnectした通信情報を次回起動時に引き継いで 利用する方法があればご教授頂きたいです。 また、上記が難しい場合サーバB-C間の通信APを常時起動することと なるかと思いますが、UDP受信をトリガーに待機中処理を開始する方法が あればご教授頂きたいです。 自身でも調査していますが解決策が見つかっていない状況です。 宜しくお願いします。
回答: サーバBでUDPポートの受信待機をしているプロセスは、サーバAからの指示がない限り動作させ続けるのが良いと思います。 サーバAからサーバBのUDPポートにデータが届いた事を監視しているプロセスは、ずっと監視を続けている必要がありますから、毎回停止させるのは不合理だと思います。 サーバBでUDPポートを監視しているプロセスが、サーバCとのTCPコネクションを保持しているなら、TCP通信を継続的に利用するのに好都合です。 こういう雰囲気でシステムの構成を考えられませんか?