TCP接続ターゲットマシンが積極的に拒否されました

TCP接続ターゲットマシンが積極的に拒否されました

2 台のラップトップに、簡単な TCP クライアント/サーバー プログラムがあります。「netstat -anb」を使用すると、サーバーは正常に動作するはずです。サーバーは「0.0.0.0:102」でリッスン中として表示されますが、クライアント接続は「192.168.10.5:102」で失敗します。

ポートは一致する必要があり、サーバーの IP アドレスについては「0.0.0.0」に設定して、すべての接続を受け入れるようにする必要があります。

1 台のラップトップでプログラムをまとめて実行すると、正常に動作します。トラブルシューティングに苦労しています。いくつかの投稿を調べましたが、そのほとんどはサーバーの IP を「0.0.0.0」に設定することを提案していたので、そのようにしました。そして、「netstat -anb」を実行すると、サーバーがリッスンしていることが示されます。

接続時のクライアント側コード

    private void btnConnect_Click(object sender, EventArgs e)
    {
        client = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);

        IPAddress ip = Dns.GetHostByName(Dns.GetHostName()).AddressList[0];
        try
        {
            client.Connect(new IPEndPoint(ip, port));
        }
        catch(Exception ex) {
            MessageBox.Show("Connection failed");
            MessageBox.Show(ex.ToString());
            return;
        }
        this.Text = "Connected";
    }

サーバ側

    private void btnListen_Click(object sender, EventArgs e)
    {
        Invoke((MethodInvoker)delegate {
            statusLblOne.Text = "Listening..";
            return;
        });

        // establish connection with socket.
        server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        server.Bind(new IPEndPoint(0, port));
        server.Listen(0);

        // use <acceptStream> to accept data
        acceptStream = server.Accept();
        txtMessage.Enabled = true;

        // allocate a new thread for this acceptstream
        statusLblOne.Text = "Receiving data...";
        Thread th = new Thread(receiveData);
        th.Start();

        // close the listener socket
        server.Close();
    }

元の質問に接続用のコードを投稿しました。今は本当に混乱しています。stackoverflow で多くの投稿を検索して助けを求めましたが、ほとんどの投稿では、別のポートを使用する (0.0.0.0 が機能するはずです) か、サーバーがリッスンしていない (netstat でリッスンしていることが示されています) と書かれていました。どのように対処すればよいでしょうか。より適切な診断を行うために、さらにどのような情報を提供すればよいでしょうか。

関連情報