尝试连接远程服务器时遇到问题。
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);
在localhost上一切正常。
答案 0 :(得分:1)
http://comments.gmane.org/gmane.comp.finance.moneydance.general/5389
这有时会发生在其他平台上 - 偶尔使用它 发生在早期版本的Mac OS X上。解决方案肯定存在 因为MD要求(通过Java)打开一个,所以在Moneydance之外 标准网络连接和系统说它无法这样做。
我找到的唯一解决方案是重新启动计算机。 如果您还在运行使用大量网络的其他软件 资源,尝试不运行一段时间,看看它是否成功 差。
答案 1 :(得分:0)
删除bind()调用。这不是必需的。
答案 2 :(得分:0)
尝试使用
运行程序-Djava.net.preferIPv4Stack=true
连接到远程系统时。