【发布时间】: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 是对每个人时间的不好利用。