Question

Je vais créer une socket et obtenir un InputStream. Voici comment je l'essayer.

try {
    final String serverIP = "111.111.111.111";
    final int serverPort = Integer.parseInt(server_port);
    final InetAddress serverAd=InetAddress.getByName(serverIP);
    final InetAddress localAd =InetAddress.getByName(local_ip);  
    final int localPort = 4040;

    Socket socket = new Socket(serverAd, serverPort, localAd, localPort);  
}  

Mais il y a une exception levée,

java.net.ConnectException: Connection refused: connect
    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)
    at java.net.Socket.<init>(Socket.java:375)
    at java.net.Socket.<init>(Socket.java:276)
    at shootist.Porter.run(Porter.java:41)

Ici, le serveur me envoie des données et udp côté serveur est correct et confirmé. J'ai envoyé inviter et 200 ainsi obtenu. S'il y a un problème dans mon IP et le port, je pense, toutes les réponses ne peuvent pas livrés à mes ports IP et données. Mais il ne peut pas arriver que le serveur me envoie des réponses à mon adresse IP et le numéro de port donné. Comment puis-je résoudre ce problème? Là où je me trompe et quoi?

Était-ce utile?

La solution

A « connexion refusée » un moyen d'erreur de la pile de prise de l'appareil de serveur a reçu votre demande de connexion et intentionnellement refusé de l'accepter. Cela se produit pour l'une des deux raisons possibles:

1) il n'y a pas de prise d'écoute en cours d'exécution sur le port que vous essayez de vous connecter.

2) il y a une prise d'écoute, mais son carnet de commandes des connexions en attente est pleine, donc il n'y a pas de place à la file d'attente de votre demande à ce moment.

Pour la différence entre les deux, essayez de vous reconnecter plusieurs fois avec un retard entre chaque tentative. Si vous obtenez la même erreur constante, alors n ° 1 est probablement le coupable. Assurez-vous que le numéro de port est correct. Si # 2 est le coupable, votre Reconnect a une chance de réussir par la suite.

Autres conseils

Connexion refusée signifie que votre sont essayez de vous connecter à un serveur qui n'écoute sur ce port, ou est trop backlogged pour accepter la connexion.

Une façon simple de tester est d'essayer

 telnet 111.111.111.111 4040
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top