簡體   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