在测试客户端和服务器套接字应用程序时如何指定有效端口?

时间:2012-08-31 16:24:22

标签: c# sockets tcpclient

我尝试使用本地计算机上的套接字将客户端连接到C#中的服务器测试程序。但是,我得到了服务器主动拒绝连接"我尝试的每个端口号都有错误。

如何选择有效的端口号才能在示例客户端和服务器之间测试套接字?是否有有效的端口号。我可以用于这种情况吗?

1 个答案:

答案 0 :(得分:1)

您可能无法绑定到所选服务器上所需端口的最可能原因:

  • 您的系统配置了防火墙,以防止相关端口上的出站连接。
  • 您的网络通过防火墙或代理/网关实施此类限制。

  • 服务器的网络不允许通过防火墙或代理/网关在相关端口上进行入站连接。

  • 服务器本身具有防火墙功能,不允许在相关端口上进行入站连接。

最后,服务器上的守护程序总是可能没有运行。

检查您的端口:

  • 0-1023(0x000-0x03FF)
    为“知名端口”保留,并且通常有一定的限制,至少对于服务器端而言。要求客户使用知名端口的特殊权限没有多大意义。

  • 1024-65535(0x0400-0xFFFF)
    假定任何人都可以使用。

    但是......每个系统都有一系列指定为ephemeral ports的端口,通常不应使用这些端口。 Berkeley套接字使用1024-4999作为固定范围,但该范围因系统而异,并且[通常]可配置。