无法从远程计算机连接

All*_*lek 8 c# connection tcplistener tcpclient

我有一些问题,如果不工作,我无法在家检查.这是代码

using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;
using System.Net.Security;

class Program
{
    private static IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
    private static int port = 6000;
    private static string data = null;

    static void Main(string[] args)
    {
        Thread thread = new Thread(new ThreadStart(receiveThread));
        thread.Start();
        Console.ReadKey();
    }

    public static void receiveThread()
    {
        while (true)
        {
            TcpListener tcpListener = new TcpListener(ipAddress, port);
            tcpListener.Start();

            Console.WriteLine("Waiting for connection...");

            TcpClient tcpClient = tcpListener.AcceptTcpClient();

            Console.WriteLine("Connected with {0}", tcpClient.Client.RemoteEndPoint);

            while (!(tcpClient.Client.Poll(20, SelectMode.SelectRead)))
            {
                NetworkStream networkStream = tcpClient.GetStream();
                StreamReader streamReader = new StreamReader(networkStream);

                data = streamReader.ReadLine();

                if(data != null)
                    Console.WriteLine("Received message: {0}", data);
            }
            Console.WriteLine("Dissconnected...\n");
            tcpListener.Stop();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个简单的程序连接到这个,然后发送一个包含数据的字符串.它在localhost上工作正常,但是当我尝试连接另一台计算机时出现问题.

我甚至关闭了我的PC和路由器上的防火墙,就像我在朋友的笔记本电脑上做的那样.每次我尝试连接时,他的计算机都拒绝连接.也许我做错了什么?

当然,ipAddress现在是一个本地地址,因为它目前仅与此有关.有什么建议吗?

Nib*_*Pig 13

你需要将它设置为接受来自任何IP的连接,有一个IPAddress重载函数:

System.Net.IPAddress.Any
Run Code Online (Sandbox Code Playgroud)

使用它而不是127.0.0.1,它将解决您的问题.