【问题标题】:Connecting to Server on One Computer from another with TCP Listener/Sockets使用 TCP 侦听器/套接字从另一台计算机连接到服务器
【发布时间】: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


    【解决方案1】:

    服务器正在以类似的方式在同一端口上创建连接,但在 localhost IP 127.0.0.1 上,以供参考。

    服务器绑定到环回地址。因此,当您从与服务器相同的机器上运行的客户端连接时,连接成功。如果客户端在服务器机器的外部,它无法连接到另一台机器上 127.0.0.1 上的服务器。

    将服务器绑定到可以从客户端访问的有效 IP 地址。

    【讨论】:

    • 早先想到了这一点,但没有机会更新帖子。这正是问题所在。非常感谢您的回答,朋友。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多