首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >客户端-服务器IM应用程序中外部IP上的服务器无响应

客户端-服务器IM应用程序中外部IP上的服务器无响应
EN

Stack Overflow用户
提问于 2009-09-05 23:08:35
回答 3查看 315关注 0票数 2

我正在通过一个名为http://www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html的教程来尝试收集网络的基础知识。对于那些不想马上开始的人来说,这是一个快速教程,演示如何编写一个简单的客户端-服务器模型聊天应用程序。

当我尝试在tut中运行代码时,只要客户端和服务器都在同一个网络上,它就可以正常工作,但当我尝试在外部运行时(找一个伙伴来运行客户端应用程序,并在我这边运行服务器应用程序),一切都失败了。代码在同一网络中工作的事实让我相信这不是编码问题,而是我的网络设置方式的问题。

我试图在我的IP地址的端口21719上运行服务器,但其他人仍然无法连接到我的服务器,也无法获得任何形式的响应。

服务器用来监听连接的代码(来自tut)是:

代码语言:javascript
复制
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 ipaLocal = ipAddress;

会在某些配置上导致问题,我开始担心我的配置可能会包含在其中。

那么,有没有人能给我什么解决方案呢?

谢谢,山姆

EN

回答 3

Stack Overflow用户

发布于 2009-09-10 02:20:54

您使用的本地IP地址是什么?(ipAddress)如果它是127.0.0.1,那是不正确的(我也不知道它是如何在内部工作的,但Windows似乎时不时地使用魔法)。另外,如果您的本地计算机中有多个NIC,可能端口转发只设置为转发到其中一个,而您正在使用另一个的IP?

如果这不是问题所在,这里有一些一般性的建议:

  1. 获取netcat的副本。它是一个小型网络测试工具,其唯一任务是形成一个简单的TCP连接。这将允许您在所有这些操作中消除作为变量的代码。如果netcat 可以形成一个连接,那么你就知道问题出在你的代码上。如果不是,您已经确认这是您的路由器。
  2. 您可以使用WireShark (或TShark)查找ICMP数据包。在remote计算机上捕获ICMP数据包。如果您从路由器得到"Destination Unreachable“,则再次证明它就是您的路由器。

正如Spencer所说,您需要确保在您的路由器上设置了端口转发,以便将从端口21719进入的所有数据包转发到您的内部计算机。至于如何做到这一点,在不知道路由器类型的情况下,很难说。

票数 1
EN

Stack Overflow用户

发布于 2009-09-05 23:12:31

您是否让他人使用您的外部(互联网) IP地址?(请参阅您的here。)

您是否已将路由器针孔设置为将所有通信从端口21719转发到服务器?

票数 0
EN

Stack Overflow用户

发布于 2009-09-09 10:45:44

一些小贴士:

  1. 您使用的是哪种操作系统?请检查防火墙规则的范围和/或配置文件(在高级选项卡下)。
  2. 当您的朋友尝试远程登录到端口(连接到im服务器)时,使用WiresharkNetwork Monitor监视通信(Wireshark与Vista和win7有问题)。如果您没有看到任何东西影响到您的机器,那么问题可能出在路由器端。仔细检查设置-您说您设置了转发规则(NAT),但它是否也设置了路由器防火墙上的规则?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1384475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档