2011-09-13 3 views
1

J'ai un problème lorsque j'essaie de me connecter à un serveur distant.SocketException sur le serveur distant

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) 

Voici comment je crée la prise

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); 

Tout fonctionne bien sur localhost.

+0

Quelle est la valeur de 'dstPort'? – Mat

+0

le port de destination est 5011 – LionO

Répondre

1

http://comments.gmane.org/gmane.comp.finance.moneydance.general/5389

Cela se produit parfois sur d'autres plates-formes - il sert à l'occasion se produisent sur les versions antérieures de Mac OS X. La solution est certainement à l'extérieur de Moneydance depuis MD demande (par Java) pour ouvrir une connexion réseau standard et le système dit qu'il est incapable de le faire.

La seule solution que j'ai trouvée pour cela est de redémarrer votre ordinateur. Si vous exécutez également un autre logiciel utilisant beaucoup de ressources réseau , essayez de ne pas l'exécuter pendant un certain temps pour voir s'il y a une différence de .

0

Supprimez l'appel bind(). Ce n'est pas obligatoire.

+0

Ce n'est pas obligatoire, mais j'en ai besoin pour spécifier le port sur l'ordinateur client. Mais cela fonctionne sur le serveur distant si je l'enlève efficacement. C'est la liaison qui provoque l'exception. Pourquoi ? Comment puis-je le faire avec l'appel de liaison? – LionO

0

Essayez d'exécuter votre programme avec

-Djava.net.preferIPv4Stack=true 

lors de la connexion au système distant.

Questions connexes