BindException: Adresse déjà en cours d'utilisation, même avec de port unique

J'ai posé cette question hier et personne n'a été en mesure de comprendre le problème que j'ai. J'ai donc été l'espoir de fournir un plus à jour de code avec les suggestions d'hier ajouté. En gros, j'ai essayé de créer une connexion entre un serveur et un client, mais chaque fois que j'ai exécuté le serveur puis le client, j'aimerais obtenir cette exception: Address already in use. La réponse la plus évidente serait de lui donner un nouveau port, mais même alors, je reçois toujours ce message d'erreur. Je suis en supposant qu'il a quelque chose à faire avec mon code quelque part va mal. Quelqu'un peut-il repérer s'il vous plaît? J'ai joint le serveur de la classe et de la classe client.

C'est l'erreur que je reçois:

Exception in thread "main" java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
    at java.net.ServerSocket.bind(ServerSocket.java:376)
    at java.net.ServerSocket.<init>(ServerSocket.java:237)
    at java.net.ServerSocket.<init>(ServerSocket.java:128)
    at MessageServer.main(MessageServer.java:16)

Code serveur:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;

public class MessageServer {

    public static void main(String[] args) throws IOException {
        try {
            int port = 53705;

            ServerSocket server = new ServerSocket(port);

            while (true) {
                System.out.println("Waiting for client...");
                //server.setReuseAddress(true);
                Socket client = server.accept();

                System.out.println("Client from " + server.getInetAddress() + " connected.");
                BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
                String inputLine = in.readLine();
                System.out.println("Client said: '"+inputLine+"'");
                Writer count = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
                byte c [] = count.toString().getBytes();
                count.flush();
                count.close();
                in.close();
            } 
        } catch (IOException e) {
            System.err.println(e);
        }
    }
}

Code Client:

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

public class MessageSendClient {

    public static void man(String args[]) throws IOException {
        String servername = "localhost";
        int port = 53705;
        Socket server;
        //server.setReuseAddress(true);
        try {
            server = new Socket (servername,port);

            System.out.println("Connected to " + server.getInetAddress());
            DataInputStream in = new DataInputStream(new BufferedInputStream(server.getInputStream()));

            server.close();
            byte c[] = new byte[100];
            int num = in.read(c);
            String count = new String(c);

            System.out.println("Server said: " + count);

        } catch (Exception e) { }
    }
}
Vous avez besoin de marquer la trace de la pile et identifier l'instruction dans le programme à laquelle l'exception est levée.
SALUT, j'ai édité mon post avec la trace de la pile. Pouvez-vous voir où je vais mal avec mon code s'il vous plaît?
avez-vous résoudre ce problème ?

OriginalL'auteur user3576868 | 2014-04-27