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调用来执行此操作?