Can'tconnecttomyIPusingSocket当我运行服务器时,服务器在服务器端抛出“attemptingtodeserializeanemptystream”的错误这一行:this.tcpListener.Start();这是我的互联网IP,如果我使用我的本地IP,它就可以工作。但我想要互联网IP。客户端:TcpClienttcpclnt=newTcpClient();Console.WriteLine("正在连接....");tcpclnt.Connect("187.115.131.44",8001);服务器:publicServer(){try{IPAddressip=IPAddress.Parse("187.115.131.44");tcpListener=newTcpListener(ip,8001);listenThread=newThread(newThreadStart(ListenForClients));listenThread.Start();}catch(Exceptione){Console.WriteLine("Error....."+e.StackTrace);控制台.ReadKey();}}privatevoidListenForClients(){this.tcpListener.Start();while(true){//阻塞直到客户端连接到服务器TcpClientclient=this.tcpListener.AcceptTcpClient();//创建一个线程来处理通信//与连接的客户端ThreadclientThread=newThread(newParameterizedThreadStart(HandleClientComm));clientThread.Start(客户端);当您启动应用程序并且它正在侦听端口时,请在此处运行端口转发检查。我在编写网络软件时遇到过这个问题——这是一个常见问题。确认是端口转发问题后,请访问PortForward.com。有许多资源可以帮助您配置路由器。您明显滞后的防火墙和/或路由器/交换机是原因。它需要在所述设备上更改或添加NAT策略。我有同样的问题,我也在路由器和防火墙后面。我发现使用您的代码localhost(127.0.0.1)是完美的,但是一旦我们尝试连接到远程主机,它就会出错。解决方法是修改服务端代码如下:tcpListener=newTcpListener(IPAddress.Any,8001);对大家有用,需要了解更多的C#学习教程。希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
