Es kann nicht möglich sein, einen Socket zu erstellen: java.net.connectException: Verbindung abgelehnt: Connect

StackOverflow https://stackoverflow.com/questions/8815561

Frage

Ich werde eine Steckdose erstellen und eine bekommen InputStream. So versuche ich es.

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

Aber es wird eine Ausnahme geworfen,

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)

Hier sendet mir der Server RTP -Daten und die Serverseite ist in Ordnung und bestätigt. Ich habe Einladung geschickt und auch 200 bekommen. Wenn es in meiner IP und meinem Port ein Problem gibt, können alle Antworten nicht an meine IP geliefert und Ports gegeben. Es kann jedoch nicht passieren, da der Server mir Antworten auf meine IP und die angegebene Portnummer sendet. Wie kann ich dieses Problem beheben? Wo ich irre und was?

War es hilfreich?

Lösung

Bei einem Fehler "Verbindungsgeläut" bedeutet der Socket -Stapel auf dem Servergerät Ihre Verbindungsanforderung und lehnte absichtlich ab, ihn zu akzeptieren. Dies geschieht aus einem von zwei möglichen Gründen:

1) Es gibt keine Hörbuchse am Port, mit dem Sie eine Verbindung herstellen möchten.

2) Es gibt einen Hörsteck, aber sein Rückstand an ausstehender Verbindungen ist voll. Daher gibt es keinen Raum, um Ihre Anfrage in diesem Moment zu stapfen.

Um zwischen den beiden zu unterscheiden, versuchen Sie, zwischen jedem Versuch einige Male mit einer Verzögerung zu verbinden. Wenn Sie konsequent den gleichen Fehler erhalten, ist Nr. 1 wahrscheinlich der Schuldige. Stellen Sie sicher, dass die Portnummer korrekt ist. Wenn #2 der Täter ist, hat Ihre Wiederverbindung die Chance, irgendwann erfolgreich zu sein.

Andere Tipps

Verbindung verweigert bedeutet, dass Sie versuchen, eine Verbindung zu einem Server herzustellen, der diesen Port nicht zuhört, oder zu zurückhaltend ist, um die Verbindung zu akzeptieren.

Eine einfache Möglichkeit, dies zu testen, besteht darin, dies zu versuchen

 telnet 111.111.111.111 4040
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top