繁体   English   中英

我应该使用什么端口号?

[英]What port number shall I use?

我正在编写一个要在 Windows PC 上运行的应用程序。 我需要创建一个侦听 127.0.0.1 的服务器套接字,以及另一个与该服务器套接字连接的客户端套接字。

由于两台sockets之间的数据交换是在同一台机器内,没有从机外连接的客户端,使用什么端口无关紧要,只要两台sockets使用相同的端口号即可。

那么,我如何决定使用哪个端口号 应该是硬编码的端口号,比如 49500? 如果这台机器上的另一个不相关的应用程序碰巧使用了这个端口号怎么办? 或者我应该得到所有使用端口的列表并以编程方式选择一个未使用的端口?

只想知道什么是最好的方法。 谢谢。

0 到 1023 之间的端口通常是受控制的,您应该为您的套接字分配更高的端口号,尽管在该范围内可以注册 1024 和 49151 内的端口,以便其他人了解这一点而不使用它们。
如果您想避免冲突,您可以在您的机器上查看已注册的端口,并为您的套接字分配一个端口号,该端口号为空,但高于该端口(49152 到 65535)的端口是完全免费的,甚至没有注册。
一般来说,担心这一点并不常见。 例如,VMware 和 apache web 服务器等两个主要应用程序在相同的端口号 (443) 上运行,如果您想使用 VMware 工作站和 Z3D7A0855B865B4332A94F903EF782A94F94F903EF78224DZ(它们在另一个端口上侦听),您只需制作一个 apache)这没什么大不了的。 所以在我看来,最好的做法是让你的用户通过配置文件或类似的东西来改变它。
更多信息,你可以搜索谷歌。 例如这个链接可能有用:
https://www.sciencedirect.com/topics/computer-science/registered-port#:~:text=Well%2Dknown%20ports%E2%80%94Ports%20in,1023%20are%20assigned%20and%20controlled.&text =已注册%20ports%E2%80%94Ports%20in%20the,be%20registered%20to%20prevent%20duplication.&text=动态%20ports%E2%80%94Ports%20in%20the,assigned%2C%20受控%2C%20或%20已注册

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM