Как я могу закрыть сокет, не останавливая приложение сервера, потому что я хочу открыть его в java - PullRequest
1 голос
/ 03 мая 2020

Я создаю приложение, в котором клиент может выйти из системы после входа в систему, и я хочу дать ему возможность повторно войти в систему после того, как он выйдет из системы. но дело в том, что я не могу повторно открыть сокет после его закрытия. Я получаю java .io.IOException: Поток закрыт.

код сервера:

public final class ServerClass 
{ 
    //variables initializations are removed in order not to make the code unnecessarily long
    try{ 
        while(true){
            switch (option){
               case 5:
                    socket.close();
                    server.close();
                    IP = InetAddress.getByName("192.168.0.210");
                    server = new ServerSocket(port,10, IP);
                    socket= server.accept();
                    System.out.println("client is accepted");
                    option=-1;
                    break;

                default: break;
            }
        }

} 

код клиента:

public void closeConnection(){
        try{
            dout=new DataOutputStream(socket.getOutputStream());
            dout.writeInt(5);
            dout.flush();
            socket.close(); 
        }catch(IOException i){ 
            System.out.println(i); 
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...