【发布时间】:2015-08-02 10:23:10
【问题描述】:
我有一个简单的服务器,我可以在一台计算机上运行一个简单的聊天客户端可以连接到该服务器。当我在本地运行服务器时,我也可以从本地客户端很好地连接到它。问题是我似乎无法从另一台计算机上的客户端连接到服务器。
来自客户端的一些示例代码:
static string ipAddr = "<server local IP address>";
static Int32 port = 4296;
static System.Net.Sockets.TcpClient tcpClient = new System.Net.Sockets.TcpClient();
tcpClient.Connect(IPAddress.Parse(ipAddr), port);
远程客户端在最后一行遇到异常。具体错误:
An unhandled exception of type 'System.Net.Sockets.SocketException occurred in System.dll
Additional information: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
服务器正在以类似的方式在同一端口上创建连接,但在本地 IP 127.0.0.1 上,以供参考。
我已尝试在我的路由器 (TCP) 上转发端口,并在我的防火墙中打开 TCP 的入站和出站端口(我知道这是不可持续的——目前只是想让它工作) .
我很确定问题是远程客户端看不到服务器,但是在端口上执行 netstat 表明它在服务器运行时正在侦听,并且在本地客户端连接时正在运行。通过Canyouseeme检查端口确实说端口没有打开,所以我只是以某种方式错误地转发了端口?
有什么建议吗?非常感谢!
【问题讨论】:
标签: c# sockets tcp network-programming server