Java客户端套接字无法绑定

时间:2019-10-30 10:49:01

标签: java sockets

我有一个方法:

void test(String clientIpPort, String serverIpPort) throws IOException {
        String[] clientParameters = clientIpPort.split(":");
        String[] serverParameters = serverIpPort.split(":");

        InetSocketAddress clientAddress = new InetSocketAddress(clientParameters[0], Integer.parseInt(clientParameters[1]));
        InetSocketAddress serverAddress = new InetSocketAddress(serverParameters[0], Integer.parseInt(serverParameters[1]));

        Socket socket = new Socket();
        socket.setReuseAddress(true);
        socket.bind(clientAddress);
        socket.connect(serverAddress, 2000);
        socket.shutdownOutput();
        socket.shutdownInput();
        socket.close();
    }

当我运行此方法时,可以在Packet Sender中看到套接字已实际连接。当我两次或两次以上运行代码时,总是得到一个java.net.BindException地址已在使用中:connect。如何在单个线程上多次运行此命令而又不获取BindException且不更改服务器和客户端端口。目前,只有在我等待1-2分钟然后再次运行它时,它才起作用。

0 个答案:

没有答案