2015-05-02 151 views
1

我已经为我的应用程序编写了一个服务器,它需要唯一标识每个连接。我目前通过SocketChannel的Socket端口识别每个连接。Java套接字 - 套接字端口

  1. 套接字的端口是由JVM给出的数字吗?

  2. 如果是这样,是否意味着平均最大连接数限制为可用于该类型连接的端口数? (这个问题可能是从问题1得到的回答,但是比对不起更安全!)

  3. 任何有更好的技巧来唯一标识每个连接的Java开发人员?

回答

2

我目前确定由一个SocketChannel的Socket的端口每个连接。

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

是由JVM给出的套接字的端口号吗?

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

如果是,是否意味着平均最大连接数限制为可用于该类型连接的端口数量?

否。从同一服务器套接字接受的所有套接字的本地端口与服务器套接字相同。

任何Java开发人员有更好的技巧来唯一标识每个连接?

您应该通过元组{本地IP地址,本地端口,远程IP地址,远程端口}来识别它。