【问题标题】:Can't connect to my IP using Socket无法使用 Socket 连接到我的 IP
【发布时间】:2023-04-05 22:37:01
【问题描述】:

当我运行服务器时,服务器在这一行的服务器端抛出此错误“尝试反序列化一个空流”this.tcpListener.Start();

这是我的互联网 IP,如果我使用本地 IP,它可以工作。但我想要互联网 IP。

客户端:

TcpClient tcpclnt = new TcpClient();
Console.WriteLine("Connecting.....");
tcpclnt.Connect("187.115.131.44", 8001);

服务器端:

    public Server()
    {
        try
        {
            IPAddress ip = IPAddress.Parse("187.115.131.44");
            tcpListener = new TcpListener(ip, 8001);
            listenThread = new Thread(new ThreadStart(ListenForClients));
            listenThread.Start();
        }

        catch (Exception e)
        {
            Console.WriteLine("Error..... " + e.StackTrace);
            Console.ReadKey();
        } 

    }

    private void ListenForClients()
    {
        this.tcpListener.Start();

        while (true)
        {
            //blocks until a client has connected to the server
            TcpClient client = this.tcpListener.AcceptTcpClient();

            //create a thread to handle communication
            //with connected client
            Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
            clientThread.Start(client);
        }
    }

【问题讨论】:

  • 你在路由器后面吗?
  • 您的互联网连接是如何设置的?该IP是由您的路由器处理的吗?您是否将 8001 从路由器端口转发到本地 PC?本地 IP 是指内部网络或 localhost 上的 IP,127.0.0.1?
  • 是的..它是一个路由器..该死的,我不知道配置它,我已经尝试了很多。我用的是 198.168.....不是 127.0.0.1...
  • “我不知道配置它...” 那么你的问题!
  • same question multiple times 是对每个人时间的不好利用。

标签: c# sockets ip


【解决方案1】:

当您启动应用程序并监听端口时,运行端口转发检查here

我在编写网络软件时遇到过这个问题 - 这是一个常见问题。

确认是端口转发问题后,请前往PortForward.com。那里有大量资源可帮助您配置路由器。

【讨论】:

    【解决方案2】:

    我有同样的问题,我也在路由器和防火墙后面。我发现使用您的代码 localhost (127.0.0.1) 可以完美运行,但是一旦我们尝试连接到远程主机,它就会出错。解决方案是将您的服务器端代码更改如下:

    tcpListener = new TcpListener(IPAddress.Any, 8001);
    

    希望对你有所帮助...

    【讨论】:

    • 这对我有帮助,我无法从 LAN 本地主机连接到我的 Socket。这现在有效。谢了。
    • 这个答案对我有帮助。
    【解决方案3】:

    您显然落后的防火墙和/或路由器/交换机是原因。这将需要在所述设备上更改或添加 NAT 策略。

    【讨论】:

    • 是的..它是一个路由器..该死的,我不知道配置它,我已经尝试了很多 =/ 还是谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2019-10-12
    • 2016-10-31
    • 1970-01-01
    • 2019-12-05
    • 2014-08-28
    相关资源
    最近更新 更多