目前,我正在研究C中的TCP客戶機/服務器實現。在這一點上,我發現我可以給任何隨機數作爲我的PC的端口號。這是正確的程序嗎?或者是否有我的電腦的任何標準端口號?如何查找任何PC的端口號?
1
A
回答
2
我不知道標準,但我說它不是。至少,我不喜歡這樣做。
你可以通過解析netstat
等程序的輸出來檢查佔用的端口,並避免使用這些端口。您也可以使用嘗試連接到一個端口的方法,並在失敗時嘗試另一個端口。除非你真的非常不走運,否則你應該在第二次嘗試時獲得有效的端口。
您應該使用49152-65535範圍內的端口。低於49152的端口被保留/註冊。
1
如果你的問題是你是否可以給任何端口號讓你的服務器監聽,那麼你錯誤地認爲,低於1024的TCP/IP端口號是特殊的,因爲普通用戶不允許在其上運行服務器,您可以使用非特權端口(端口> 1024)。只要確保任何其他應用程序尚未使用該端口(1024以上)使用netstat
2
基本上,您可以使用任何端口(給予足夠的訪問權限)。但服務器和客戶端必須同意在端口上,並且它不應該已被其他應用程序使用。
因此,許多端口已經爲特殊應用保留。 80用於HTTP,22用於SSH等。文件/etc/services
提供了更詳細的信息。
端口號0-1023被稱爲公知端口,號碼1024-49151被稱爲註冊端口(不是所有的人都有,但你的想法)。
相關問題
- 1. 查找端口號
- 2. 客戶端如何查找服務器的端口號?
- 3. 如何查找IP攝像機的號碼端口?
- 4. 如何查找oracle 11g已安裝的端口號
- 5. 如何查找IP地址的端口號?
- 6. 如何在unix中查找特定進程ID的端口號?
- 7. 如何在Mac OS X上查找串行端口號?
- 8. 如何查找SQL Server運行端口?
- 9. 如何查找可用端口?
- 10. 如何通過CommPortIdentifier查找COM端口
- 11. 查找我的Windows PC上可用的USB端口列表
- 12. 如何查找分配給UDP客戶端(以.net/C#)的端口號?
- 13. 如何選擇端口號?
- 14. 如何管理端口號?
- 15. 如何使用端口號
- 16. 如何更改端口號
- 17. 如何將默認端口號更改爲Tomcat端口號8080?
- 18. 如何更改SSIS郵件任務中的SMTP端口號
- 19. 的Python如何找到我的SMTP端口號和主機
- 20. 查找客戶端中使用的端口號
- 21. 從內核oops查找行號PC
- 22. Bsd socket如何找到連接的服務器端口號?
- 23. 如何找到默認的JMX端口號?
- 24. Vertx/Hazelcast:如何找出集羣成員的當前端口號?
- 25. 如何找到wcf服務的端口號
- 26. 如何找出TCP連接的端口號
- 27. 如何在ASP.NET中查找Web服務調用者的端口號?
- 28. 如何更改IIS的端口號
- 29. 如何獲得Websphere 6.1的端口號
- 30. TCP和UDP端口如何具有相同的端口號?
Ozbekov:你能支持你的最後聲明(關於端口範圍)嗎? – Philip 2011-12-14 09:09:03
@Philip:「cat/etc/services」,http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml或RFC6335。 – DevSolar 2011-12-14 11:03:02