【发布时间】:2015-02-06 05:38:57
【问题描述】:
我是使用 C# 编写的 Socket Server 应用程序。在使用 windows telnet 客户端在同一台计算机上运行此应用程序时,运行成功。但是,当我使用 telnet 客户端在同一网络上的不同计算机上运行此应用程序时,服务器-客户端通信不提供。
我需要在调制解调器上打开端口吗?
在同一台计算机上 => C# Server app + telnet 客户端 => 运行成功。 在同一网络上的不同计算机上 => 1. 计算机服务器 + 2. 计算机客户端 => 不工作。
【问题讨论】:
-
当您在非您的计算机上运行服务器时,也可能是 Windows 防火墙阻止了传入连接。
-
定义“不工作”。它具体是如何失败的?客户端可以在指定端口上连接到服务器吗?
-
客户端应用未连接服务器 :)
-
去掉Server地址即可,绑定127.0.0.1表示只监听loopback连接。如果您的库强制您指定地址,请指定“0.0.0.0”,表示“任何地址”,或者您可以尝试指定您的网卡地址(例如:192.168.1.2),这样您的套接字将绑定在正确的网卡。
-
捕获异常。让我们知道 SocketException.ErrorCode 属性的值是什么。使用 SocketException.ErrorCode 属性获取特定的错误代码。获取此代码后,可以参考MSDN中的Windows Sockets version 2 API错误代码文档,了解错误的详细描述。