【问题标题】:C# Server - Client App on Different ComputersC# 服务器 - 不同计算机上的客户端应用程序
【发布时间】: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错误代码文档,了解错误的详细描述。

标签: c# sockets tcp telnet


【解决方案1】:

当你创建套接字时

TcpListener serverSocket = new TcpListener(IPAddress.Parse("0.0.0.0"), 8888);

或本地地址 而不是

TcpListener serverSocket = new TcpListener(IPAddress.Parse("127.0.0.1"), 8888);

否则它只能在本地工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多