1

我目前在 8090 端口上运行 jboss,我的客户端套接字在 jboss 中运行。我按预定的时间间隔向服务器套接字发送请求以获取数据。现在我的问题是

  1. 由于 8090 端口已在使用中,客户端套接字是否可以在该端口上打开并连接服务器?

  2. 是否可以在一个端口上运行两个应用程序?

  3. 如果端口已在使用中,如何跳过它。我的客户端套接字一次打开 5,000 个请求,因此它同时打开了那么多本地端口。所以如果有任何端口已经在使用,我需要跳过它。

4

2 回答 2

2

对于 TCP/IP,没有。您一次只能让一个应用程序监听一个端口。现在,如果您有 2 个网卡,则可以让一个应用程序使用相同的端口号侦听第一个 IP 和第二个 IP 上的第二个应用程序。

要跳过它,您需要一个简单的检查来查看它是否正在使用:

boolean portTaken = false;
ServerSocket socket = null;
try {
    socket = new ServerSocket(portNumber);
    } 
catch (IOException e) {
    portTaken = true;
} 

然后为每个端口检查布尔值以查看它是否正在使用,直到找到可用的端口。

于 2012-09-04T13:14:37.177 回答
0

您无需担心客户端套接字的本地端口。操作系统会为您找到一个,除非您使用太多,如果您一次有 5,000 个,这是一个明显的可能性。只是在打开 Socket 时不要指定任何本地端口信息。

于 2012-09-04T23:55:12.237 回答