我目前在 8090 端口上运行 jboss,我的客户端套接字在 jboss 中运行。我按预定的时间间隔向服务器套接字发送请求以获取数据。现在我的问题是
由于 8090 端口已在使用中,客户端套接字是否可以在该端口上打开并连接服务器?
是否可以在一个端口上运行两个应用程序?
如果端口已在使用中,如何跳过它。我的客户端套接字一次打开 5,000 个请求,因此它同时打开了那么多本地端口。所以如果有任何端口已经在使用,我需要跳过它。
我目前在 8090 端口上运行 jboss,我的客户端套接字在 jboss 中运行。我按预定的时间间隔向服务器套接字发送请求以获取数据。现在我的问题是
由于 8090 端口已在使用中,客户端套接字是否可以在该端口上打开并连接服务器?
是否可以在一个端口上运行两个应用程序?
如果端口已在使用中,如何跳过它。我的客户端套接字一次打开 5,000 个请求,因此它同时打开了那么多本地端口。所以如果有任何端口已经在使用,我需要跳过它。
对于 TCP/IP,没有。您一次只能让一个应用程序监听一个端口。现在,如果您有 2 个网卡,则可以让一个应用程序使用相同的端口号侦听第一个 IP 和第二个 IP 上的第二个应用程序。
要跳过它,您需要一个简单的检查来查看它是否正在使用:
boolean portTaken = false;
ServerSocket socket = null;
try {
socket = new ServerSocket(portNumber);
}
catch (IOException e) {
portTaken = true;
}
然后为每个端口检查布尔值以查看它是否正在使用,直到找到可用的端口。
您无需担心客户端套接字的本地端口。操作系统会为您找到一个,除非您使用太多,如果您一次有 5,000 个,这是一个明显的可能性。只是在打开 Socket 时不要指定任何本地端口信息。