Networking TCP客户端可以';t连接到TcpListener
我想在网络中使用TcpListener-TcpClient连接。 仅当我在一台设备上启动应用程序时,它才起作用。当我在网络中使用两台不同的设备时,出现以下错误:Networking TCP客户端可以';t连接到TcpListener,networking,tcpclient,tcplistener,socketexception,Networking,Tcpclient,Tcplistener,Socketexception,我想在网络中使用TcpListener-TcpClient连接。 仅当我在一台设备上启动应用程序时,它才起作用。当我在网络中使用两台不同的设备时,出现以下错误: A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll Exception: System.Net.Sockets.SocketException (0x80004005): Es konnte keine
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
Exception: System.Net.Sockets.SocketException (0x80004005): Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte 127.0.0.1:1300
bei System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
bei System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
bei System.Net.Sockets.TcpClient.Connect(IPEndPoint remoteEP)`bei System.Net.Sockets.TcpClient.Connect(IPAddress address, Int32 port)`
我认为这是因为Windows防火墙,但即使我停用防火墙,问题仍然存在
服务器:
ipAddress = Dns.GetHostEntry("localhost").AddressList[1];
server = new TcpListener(IPAddress.Any, port);
server.Start();
clients = new List<TcpClient>();
Console.WriteLine("Starte Server ..." + ipAddress + " : " + port);
receiver = new List<TCPReceiveMessages>();
里面的线是:
private void accpeting()
{
//Client socket erstellen
socketForClient = server.AcceptSocket();
while (accept)
{
//clients werden hinzugefügt
clients.Add(server.AcceptTcpClient());
receiver.Add(new TCPReceiveMessages(this));
}
socketForClient.Close();
model.getController().setLoading(false, " ");
}
客户端正在连接到正确的ipAdress和端口
我希望任何人都能帮助我:)
编辑1:我将Ip地址更改为192.168.1.3,因为它位于网络内部,现在TCP客户端说服务器在一段时间后没有反应,或者连接出现问题,因为连接的主机没有反应。问题是我使用了错误的iPAddress:
- 将ip地址更改为192.168.1.3
- 将端口更改为5550
- 有问题:禁用防火墙 ->它起作用了
- 启用防火墙 ->它也起作用了
private void accpeting()
{
//Client socket erstellen
socketForClient = server.AcceptSocket();
while (accept)
{
//clients werden hinzugefügt
clients.Add(server.AcceptTcpClient());
receiver.Add(new TCPReceiveMessages(this));
}
socketForClient.Close();
model.getController().setLoading(false, " ");
}