2016-07-09 10 views
0

質問があります。私はC#を使ってWindows Formsのtcpに基づいてサーバーとクライアントを使ってゲームを構築しています。私はポート8820でリッスンするいくつかのスレッドを実行し、それぞれのスレッドは別のフォームにあります。同じメッセージの2つのリスニングスレッド

私の質問は、サーバーからメッセージを受け取る両方のリスニングスレッドか、それを取得するのが唯一のものですか?私が正しくあなたを理解していれば、あなたは2つのTcpListenerのランニング、異なるフォーム上の各を持っていますが、よ

+0

論理的には、両方ともメッセージを受け取る必要があります。 – Rahul

+0

前述のように、良い[mcve]がなければ、コードはどのように見えるかわからないので、この質問は広すぎます。また、ポートが_listening_の場合は_your_ソケットがサーバーなので、_listening_のスレッドが_other_サーバーからのメッセージを受け取るかどうか尋ねるのは意味がありません。 "再使用"フラグを使用しないと、指定されたポートで複数のソケットを受信することはありません。私はあなたに言います:あなたはあなたがそれを間違っている[タグ:winforms] 'フォーム'オブジェクトを参照している "別のフォーム"によって、UIスレッドを1つだけ持っている必要があります。 –

答えて

1

このように同じポート、用:

// Runs on Form #1 
TcpListener tcp1 = new TcpListener(IPAddress.Any, 9876); 
tcp1.Start(); 

// Runs on Form #2 
TcpListener tcp2 = new TcpListener(IPAddress.Any, 9876); 
tcp2.Start(); 

のSocketExceptionをスローします開始するために第2の1 。指定されたポート/ネットワークアドレスに対しては、1つのリスナのみを持つことができます。

関連する問題