Java套接字——套接字端口

标签 java sockets network-programming socketchannel

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

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

  2. 如果是,这是否意味着平均最大连接数仅限于该类型连接可用的端口数量? (这个问题可能是对问题 1 答案的反驳,但安全总比后悔好!)

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

最佳答案

I currently identify each connection by the port of SocketChannel's Socket.

如果您指的是本地端口,那么您的代码已经不起作用。

Is the port of a socket a number given by JVM?

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

If it is, does this mean the mean max number of connections is limited to the amount of ports to available for that type of connection?

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

Any Java developers that have any better tips for uniquely identify each connection?

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

关于Java套接字——套接字端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997097/

相关文章:

java - Spring MVC PUT 请求返回 405 方法不允许

java - 如何劫持 Callable 并在 call() 之前执行隐藏方法

c - 仍然使用 TCP_NODELAY 发送一条消息

java - 在 Android 中获取网络连接警告

networking - 为什么我们需要地址解析协议(protocol)?

java - 如何执行具有异步任务返回值的方法?

java - 在 Java 文本文件中保存换行符

python - 类型错误 : Can't convert 'bytes' object to str implicitly despite adding . 编码()到字符串

java - 如何将 JavaSE 客户端连接到 JavaEE 服务器并发送可序列化对象?

javascript - Node.js UDP 网络多播