2015-05-02 149 views
1

我已經爲我的應用程序編寫了一個服務器,它需要唯一標識每個連接。我目前通過SocketChannel的Socket端口識別每個連接。Java套接字 - 套接字端口

  1. 套接字的端口是由JVM給出的數字嗎?

  2. 如果是這樣,是否意味着平均最大連接數限制爲可用於該類型連接的端口數? (這個問題可能是從問題1得到的回答,但是比對不起更安全!)

  3. 任何有更好的技巧來唯一標識每個連接的Java開發人員?

回答

2

我目前確定由一個SocketChannel的Socket的端口每個連接。

如果你的意思是本地端口,你的代碼已經不起作用了。

是由JVM給出的套接字的端口號嗎?

不,它由TCP給出,除非您自己在代碼中指定它。

如果是,是否意味着平均最大連接數限制爲可用於該類型連接的端口數量?

否。從同一服務器套接字接受的所有套接字的本地端口與服務器套接字相同。

任何Java開發人員有更好的技巧來唯一標識每個連接?

您應該通過元組{本地IP地址,本地端口,遠程IP地址,遠程端口}來識別它。