tcp連線目標機主動拒絕

tcp連線目標機主動拒絕

我在兩台筆記型電腦上有一個簡單的 TCP 用戶端/伺服器程式。當我使用“netstat -anb”時,伺服器應該工作正常,並且伺服器顯示為正在偵聽“0.0.0.0:102”,然後我的客戶端連線失敗,顯示“192.168.10.5:102”。

連接埠應該匹配,對於伺服器 IP 位址,我將其設置為“0.0.0.0”,因此它應該接受任何連接。

當我在一台筆記型電腦上一起運行該程式時,它工作正常。我很難排除故障。我查了幾篇文章,其中大多數建議將伺服器 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 顯示它正在監聽)。我應該如何處理這個問題?我可以提供哪些更多資訊來更好地診斷

相關內容