【发布时间】:2009-09-05 23:08:34
【问题描述】:
我正在关注@http://www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html 的教程,以尝试收集网络基础知识。对于那些不想跳的人来说,这是一个快速的 tut 演示如何编写一个简单的客户端-服务器-模型聊天应用程序。
当我尝试运行 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;
会导致某些配置出现问题,我开始担心我的配置可能包含在其中。
那么,有没有人可以帮我解决?
谢谢, 山姆
【问题讨论】:
-
您是在 Internet 可路由 IP 地址上,还是在 NAT 网关后面?如果是后者,您是否已将服务器端口从路由器转发到服务器?
-
您的客户能否通过 telnet 访问您:telnet yourip 21719 ?他们可能无法做太多事情,但如果他们连接起来,那就是关于发生了什么的线索。
-
spender - 我刚找了一个伙伴来远程登录我,连接超时。所以我认为我们已经找到了问题,它与我的配置有关。关于可以做什么的任何想法?
标签: c# networking client-server instant-messaging