我正在嘗試爲TCP連接生成一個隨機端口號。 From:http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers我知道端口範圍從1024到49151不保留,但其中一些只是UDP,我怎樣才能生成唯一有效的TCP端口號?TCP的允許端口範圍
回答
如果綁定到端口0,操作系統將選擇一個有效的未使用端口。
如果您需要隨機而不是任意的,那麼49152-65535中的任何內容都應該是安全的,以便自動使用,所以只需在該範圍內選擇一個隨機數。 (但是,如果該端口原來處於使用狀態,則可能必須重試。)
因此,該範圍內的任何端口都將支持TCP?因爲從維基頁面,一些端口只被標記爲UDP。另外,如果端口正在使用,我將如何檢查java?謝謝! –
1-65535的所有端口都支持TCP,該頁面上列出的TCP/UDP是指已註冊的端口;也就是分配給特定用途的端口。檢查一個端口是否處於使用狀態通常是通過試圖綁定端口來完成的,如果你得到一個關於正在使用的端口的錯誤,那麼它就是這樣。如果你得到的是什麼端口並不重要,但只要你得到一個端口,那麼你應該綁定端口0,然後從你的新套接字獲得本地端口,以找出你得到的。 – Eric
爲了闡述一下,你的本地服務器綁定到一個特定的端口,但UDP和TCP在不同的「命名空間」,所以是獨立的。使用_both_的服務器通常會爲兩者打開相同的端口號。 _Connections_由協議的5元組,local-addr,local-port,remote-addr,remote-port定義,這解釋了爲什麼你不會發生串擾等等。 –
- 1. 允許範圍
- 2. 允許端口80/TCP上的傳出流量的服務器防火牆是否也允許端口80/UDP?
- 3. IPC端口範圍
- 4. Clojure允許的函數/宏的範圍
- 5. Ngnx並允許端口
- 6. 允許Azure/Centos mongodb端口
- 7. 只允許不在範圍內的值
- 8. HTAccess允許特定的IP範圍
- 9. 指定boost :: program_options的允許值範圍
- 10. InputBox:只允許一定範圍的值
- 11. 動態kubernetes端口範圍
- 12. 重疊比較日期範圍,但允許相鄰範圍
- 13. 熊貓GROUPBY範圍,允許重複
- 14. 如何在htaccess中允許IPS範圍?
- 15. bigquery.readonly範圍允許哪些操作?
- 16. 激活範圍,允許編輯,繼續
- 17. 與範圍不允許範圍(細胞,細胞)只範圍循環(「A:A」)
- 18. 允許或Linux的一個端口
- 19. Erlang的TCP端口
- 20. 發生異常:原因:協調超出允許範圍java.lang.IllegalStateException:協調超出允許範圍
- 21. ocsigenserver:您不允許使用端口80
- 22. 後綴不會允許25端口
- 23. iptables允許whm郵件端口25
- 24. asio tcp客戶端應用程序的端口規範
- 25. ElasticSearch - 指定確切的端口(無端口範圍)
- 26. 爲什麼TCP/IP套件中的最大端口範圍是65535?
- 27. 如何允許通過某些TCP端口連接到CF應用程序?
- 28. 爲什麼OS X允許兩次在同一個TCP端口上偵聽?
- 29. 請求頭場範圍不被允許接入控制允許頭
- 30. 是否有任何協議規範允許使用TCP或UDP?
對於TCP客戶端,高於1024的所有內容都被認爲是正確的。如果你需要在維基百科頁面上看到一個條目作爲「可接受」的TCP端口,你就會考慮這個問題。所有TCP端口= <1024都適用於客戶端套接字源端口。 –