Java Réseau “Connection Refused: Connect”

J'ai essayé d'obtenir une simple mise en réseau programme de test pour s'exécuter sans résultats.

Serveur:

import java.io.*;
import java.net.*;

public class ServerTest {
    public static void main(String[] args) {
    final int PORT_NUMBER = 44827;

    while(true) {
        try {
        //Listen on port
        ServerSocket serverSock = new ServerSocket(PORT_NUMBER);
        System.out.println("Listening...");

        //Get connection
        Socket clientSock = serverSock.accept();
        System.out.println("Connected client");

        //Get input
        BufferedReader br = new BufferedReader(new InputStreamReader(clientSock.getInputStream()));
        System.out.println(br.readLine());

        br.close();
        serverSock.close();
        clientSock.close();
        } catch(Exception e) {
        e.printStackTrace();
        }
    }
    }
}

Client:

import java.io.*;
import java.net.*;

public class ClientTest {
    public static void main(String[] args) throws IOException {
    final int PORT_NUMBER = 44827;
    final String HOSTNAME = "xx.xx.xx.xx";

    //Attempt to connect
    try {
        Socket sock = new Socket(HOSTNAME, PORT_NUMBER);
            PrintWriter out = new PrintWriter(sock.getOutputStream(), true);
        //Output
        out.println("Test");
        out.flush();

        out.close();
        sock.close();
    } catch(Exception e) {
        e.printStackTrace();
    }
    }
}

Le programme fonctionne très bien lorsque j'utilise 127.0.0.1 ou mon IP interne pour le nom d'hôte. Mais à chaque fois que je passe à mon adresse IP externe, il jette un java.net.ConnectException: Connection refused: connect erreur.

J'ai volontairement choisi une rare port, pour voir si c'était le problème, avec pas de chance.
Je peux me connecter sans problèmes à l'aide de telnet, mais quand j'essaie d'accéder au port avec canyouseeme.org il me dit que la connexion a expiré.
J'ai même essayé de désactiver tous les pare-feu et antivirus, y compris les Windows par défaut et le pare-feu du routeur, avec tous les ports transmis et DMZ activé, et il est dit encore que la connexion a expiré. J'utilise Comcast que mon fournisseur d'accès internet, et je doute qu'ils bloquer un port aléatoire.

Lorsque j'utilise un packet tracer, il montre le trafic TCP avec mon ordinateur qui envoie SYN et la réception RST/ACK, de sorte qu'il ressemble à un port bloqué, et aucun autre paquet suspect de trafic qui se passait.

Je n'ai aucune idée de ce qui se passe à ce point; j'ai bien essayé tous les trucs que je connais. Si quelqu'un sait pourquoi le port peut être bloqué, ou au moins un moyen de faire fonctionner le programme, il serait très utile.

J'ai peut-être une lapalissade, mais pouvez-vous telnet à le port? Il serait d'aider à localiser le problème. Une autre option à faire est d'essayer de remplacer le processus de serveur avec juste une écoute netcat et voir si vous pouvez vous connecter à elle.
Peut-être que quelqu'un peut me donner un simple client/serveur programme qu'ils savent travaille sur son ordinateur. Qui pourrait m'aider à comprendre si le problème est toujours avec la redirection de port et de pare-feu ou avec mon code.

OriginalL'auteur | 2011-02-10