Java 远程服务器上的SocketException

Java 远程服务器上的SocketException,java,network-programming,Java,Network Programming,我在尝试连接到远程服务器时遇到问题 SocketException: Invalid argument or cannot assign requested address at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.co

我在尝试连接到远程服务器时遇到问题

SocketException: Invalid argument or cannot assign requested address
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
下面是我如何创建套接字的

if (socket == null) {
        socket = new Socket();

    try {
        socket.setReuseAddress(true);
        socket.setTcpNoDelay(true);
    } catch (SocketException ex) {
    }
    }
    dstAddress = new InetSocketAddress(server, dstPort); 
    srcAddress = new InetSocketAddress("localhost", srcPort);
    socket.bind(srcAddress);
    socket.connect(dstAddress);
在本地主机上一切正常。

这种情况有时会发生在其他平台上——过去偶尔会发生 发生在Mac OS X的早期版本上。解决方案肯定存在 Moneydance之外,因为MD请求(通过Java)打开 标准网络连接,系统表示无法这样做

我找到的唯一解决办法是重新启动计算机。 如果您还运行其他使用大量网络的软件 资源,请尝试暂时不运行它,以查看它是否会产生错误 差别

这种情况有时会发生在其他平台上——过去偶尔会发生 发生在Mac OS X的早期版本上。解决方案肯定存在 Moneydance之外,因为MD请求(通过Java)打开 标准网络连接,系统表示无法这样做

我找到的唯一解决办法是重新启动计算机。 如果您还运行其他使用大量网络的软件 资源,请尝试暂时不运行它,以查看它是否会产生错误 差别


删除bind()调用。它不是必需的。

删除bind()调用。这不是必需的。

试着用

-Djava.net.preferIPv4Stack=true

连接到远程系统时。

尝试使用运行程序

-Djava.net.preferIPv4Stack=true

连接到远程系统时。

DSPORT的值是多少?DSPORT的值是多少?这不是必需的,但我需要它来指定客户端计算机上的端口。但如果我有效地删除它,它就可以在远程服务器上工作。导致异常的是绑定。为什么?如何使用bind调用进行绑定?这不是必需的,但我需要它来指定客户端计算机上的端口。但如果我有效地删除它,它就可以在远程服务器上工作。导致异常的是绑定。为什么?如何使用bind调用来执行此操作?