我正在通过一个名为http://www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html的教程来尝试收集网络的基础知识。对于那些不想马上开始的人来说,这是一个快速教程,演示如何编写一个简单的客户端-服务器模型聊天应用程序。
当我尝试在tut中运行代码时,只要客户端和服务器都在同一个网络上,它就可以正常工作,但当我尝试在外部运行时(找一个伙伴来运行客户端应用程序,并在我这边运行服务器应用程序),一切都失败了。代码在同一网络中工作的事实让我相信这不是编码问题,而是我的网络设置方式的问题。
我试图在我的IP地址的端口21719上运行服务器,但其他人仍然无法连接到我的服务器,也无法获得任何形式的响应。
服务器用来监听连接的代码(来自tut)是:
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;
会在某些配置上导致问题,我开始担心我的配置可能会包含在其中。
那么,有没有人能给我什么解决方案呢?
谢谢,山姆
发布于 2009-09-10 02:20:54
您使用的本地IP地址是什么?(ipAddress)如果它是127.0.0.1,那是不正确的(我也不知道它是如何在内部工作的,但Windows似乎时不时地使用魔法)。另外,如果您的本地计算机中有多个NIC,可能端口转发只设置为转发到其中一个,而您正在使用另一个的IP?
如果这不是问题所在,这里有一些一般性的建议:
正如Spencer所说,您需要确保在您的路由器上设置了端口转发,以便将从端口21719进入的所有数据包转发到您的内部计算机。至于如何做到这一点,在不知道路由器类型的情况下,很难说。
发布于 2009-09-05 23:12:31
您是否让他人使用您的外部(互联网) IP地址?(请参阅您的here。)
您是否已将路由器针孔设置为将所有通信从端口21719转发到服务器?
发布于 2009-09-09 10:45:44
一些小贴士:
https://stackoverflow.com/questions/1384475
复制相似问题