如何查找任何PC的端口号?

时间:2011-12-14 06:10:56

标签: c sockets unix tcp port

目前,我正在研究C中的TCP客户端/服务器实现。在那里,我发现我可以给任何随机数作为我的PC的端口号。这是正确的程序吗?或者我的电脑有没有标准的端口号?

3 个答案:

答案 0 :(得分:2)

我不知道标准,但我说不是。至少,我不喜欢那样做。

您可以通过解析netstat等程序的输出来检查占用的端口,并避免使用它们。您还可以使用尝试在一个端口上连接的方法,并在失败时尝试另一个端口。除非你真的很不走运,否则你应该在第二次尝试时获得一个有效的端口。

您应该使用49152-65535范围内的端口。低于49152的端口是保留/注册的。

答案 1 :(得分:2)

基本上,您可以使用任何端口(给定足够的访问权限)。但是服务器和客户端必须在端口上同意,并且它不应该已被其他应用程序使用。

因此,许多端口已经为特殊应用程序保留。 80表示HTTP,22表示SSH,依此类推。文件/etc/services提供了更详细的信息。

端口号0-1023被称为众所周知的端口,数字1024-49151被称为注册端口(并非所有这些都是,但你明白了)。

答案 2 :(得分:1)

如果您的问题是您是否可以提供任何端口号让您的服务器收听, 然后你想错了,1024以下的TCP / IP端口号是特殊的,因为普通用户不允许在它们上运行服务器,你可以使用非特权端口(端口> 1024)。只需确保任何其他应用程序尚未使用netstat

使用该端口(1024以上)