C# 客户端服务器IM应用程序中外部IP上的服务器没有响应
我正在跟随一个教程@来尝试收集网络的基础知识。对于那些不想跳起来的人来说,这是一个快速的图坦卡蒙,演示如何编写一个简单的客户机-服务器模式的聊天应用程序 当我尝试在tut中运行代码时,只要客户机和服务器都在同一个网络上,它就可以正常工作,但当我尝试在外部运行代码时(找一个伙伴运行客户机应用程序,并在我身边运行服务器应用程序),一切都会变得糟糕。代码在同一网络中工作的事实让我相信这不是编码问题,而是网络设置方式的问题 我试图在我的IP地址21719端口上运行服务器,我已经打开了端口,但是其他人无法连接到我的服务器,根本无法获得任何形式的响应 服务器用于侦听连接的代码(来自tut)为:C# 客户端服务器IM应用程序中外部IP上的服务器没有响应,c#,networking,client-server,instant-messaging,C#,Networking,Client Server,Instant Messaging,我正在跟随一个教程@来尝试收集网络的基础知识。对于那些不想跳起来的人来说,这是一个快速的图坦卡蒙,演示如何编写一个简单的客户机-服务器模式的聊天应用程序 当我尝试在tut中运行代码时,只要客户机和服务器都在同一个网络上,它就可以正常工作,但当我尝试在外部运行代码时(找一个伙伴运行客户机应用程序,并在我身边运行服务器应用程序),一切都会变得糟糕。代码在同一网络中工作的事实让我相信这不是编码问题,而是网络设置方式的问题 我试图在我的IP地址21719端口上运行服务器,我已经打开了端口,但是其他人无法
public void StartListening()
{
IPAddress ipaLocal = ipAddress; //ipAddress is parsed from txtIP
tlsClient = new TcpListener(ipaLocal, 21719);
tlsClient.Start();
ServRunning = true; //for the running loop
// Start the new tread that hosts the listener
thrListener = new Thread(KeepListening);
thrListener.Start();
}
现在,教程确实指出
IPAddress IPADLOCAL=IPAddress
将导致一些配置出现问题,我开始担心我的配置可能会包含在其中
那么,有人能为我找到解决办法吗
谢谢,
Sam您是否有人使用您的外部(互联网)IP地址?(见你的。)
您是否已锁定路由器以将所有通信从端口21719转发到服务器?一些提示:
您正在使用的本地IP地址是什么?(ipAddress)如果它是127.0.0.1,那就不对了(我也不知道它在内部是如何工作的,但Windows似乎时不时地使用magic)。此外,如果您的本地计算机中有多个NIC,那么端口转发可能只设置为转发到其中一个NIC,而您正在使用另一个NIC的IP 如果这不是问题所在,以下是一些一般性建议:
正如Spencer所说,您需要确保在路由器上设置了端口转发,以便将端口21719上传入的所有数据包转发到您的内部计算机。至于如何做到这一点,在不知道路由器类型的情况下很难说。您是在internet可路由IP地址上,还是坐在NAT网关后面?如果后者已将您的服务器端口从路由器转发到服务器?您的客户端是否可以telnet接入您:telnet yourip 21719?他们可能做不了什么,但如果他们连接起来,那么这就是发生了什么的线索。斯宾德-我刚找到一个伙伴给我打电话,连接超时了。我想我们已经找到了问题所在,是我的配置。有什么办法吗?如果这个应用程序在你的局域网上运行,那么问题就与连接有关。找出是什么阻碍了连接,一切都应该顺利进行。