Exception in thread "main" java.net.ConnectException: Connection refused: connect Socket-Programmierung mit Java

Ich habe vor kurzem erfahren, über Socket-Programmierung zwischen client und server. Also ich dachte an eine übung der Verbindung von client und server. Allerdings habe ich auf diese Fehlermeldung, wenn ich versuche den code auszuführen:
Exception in thread "main" java.net.ConnectException: Connection refused: connect

Dies ist mein client-Klasse-code:

public class clientpart {
    public static void main(String[]args) throws UnknownHostException, IOException {
        Scanner input = new Scanner(System.in);
        int port = 8080;
        String host=null;
        String answer; String sendMessage; String receivedMessage;
        InetAddress address = InetAddress.getByName(host);
        Socket socket= new Socket(address,port);

        OutputStream os = socket.getOutputStream();
        OutputStreamWriter osw = new OutputStreamWriter(os);
        BufferedWriter bw = new BufferedWriter(osw);

        System.out.println("Please answered the following question: ");
        System.out.println("What is the subject code for Socket Programming?");
        answer = input.nextLine();

        sendMessage = answer;
        bw.write(sendMessage);
        bw.newLine();
        bw.flush();
        System.out.println("Message sent to server: "+sendMessage);

        InputStream is = socket.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        receivedMessage = br.readLine();
        System.out.println("Message received from server : " + receivedMessage);
    }
}

Dies ist mein server code:

public class serverpart {
    public static Socket socket;
    public static void main(String[]args) throws IOException {
        int port = 8080;
        String answer; String returnedMessage; String reply;
        ServerSocket server = new ServerSocket(port);
        System.out.println("Server start at port "+port+".");

        while(true)
        {
            socket = server.accept();
            InputStream is = socket.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            answer = br.readLine();
            System.out.println("Message sent from client: " + answer);

            if("NET 3202".equals(answer) || "net 3202".equals(answer) || "NET3202".equals(answer) || "net3202".equals(answer)){
                reply = "Correct!";
                returnedMessage = reply;
            }
            else{
                reply = "Wrong!";
                returnedMessage = reply;
            }

            OutputStream os = socket.getOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(os);
            BufferedWriter bw = new BufferedWriter(osw);
            bw.write(returnedMessage);
            bw.newLine();
            System.out.println("Message replied to client: "+returnedMessage);
            bw.flush();
        }
    }
}

Die vollständige Fehlermeldung lautet:

Exception in thread "main" java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:244)
at clientpart.main(clientpart.java:13)
C:\Users\PeiErn\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)

Ich hoffe mir kann jemand helfen, danke.

Ich würde wohl den Input / Output-Streams zur gleichen Zeit direkt nach akzeptieren Sie die Verbindung (auf dem server) und rechts, nachdem Sie Sie angeschlossen ist (auf dem client). Ich glaube, es ist durch und seit Sie laufen auf verschiedenen "threads" die streams sind nicht immer zur gleichen Zeit erstellt. was könnte einen Fehler verursachen? idk? nur meine Meinung.
Danke @nicolas für die Formatierung der poster code. Original-poster: die posting schlecht formatierten code macht nur deine Frage schwieriger zu Lesen und zu verstehen-warum das?
Nur das problem ist Ihr port-Nummer. Sie können nicht reservierte Ports. ändern Sie einfach die port-Nummer, um ein Ding wie 9085 es wird funktionieren
Ich habe versucht, ändern der port-Nummer, die andere über 80, aber dann ist der client-Klasse zeigt mir diese Fehlermeldung: Exception in thread "main" java.net.ConnectException: Connection refused: connect
'ConnectException: Verbindung abgelehnt" bedeutet nur, du hast den Hostnamen oder die IP-Adresse oder port falsch im client, oder Sie hatte nicht den server gestartet, wenn Sie lief der client.

InformationsquelleAutor Silver Archer | 2016-11-01

Schreibe einen Kommentar