21634


JavaでSocketを使ったサーバプログラムを書こうとしています。  
現在、クライアントの切断を検知する方法が分からなく困っています。  
isClosed()で可能かと思いましたがダメなようでした。

[code]

    import java.io.*;
    import java.net.*;
    
    public class Main {
    
        public static void main(String[] args) throws IOException {
            ServerSocket server = new ServerSocket(12345);
            Socket       socket = server.accept();
            InputStream  in     = socket.getInputStream();
            while(!socket.isClosed()){
                byte[] data = new byte[1];
                in.read(data, 0, 1);
                System.out.println( (int)data[0] );
            }
            server.close();
        }
    }
    
[/code]

よろしくお願いします。


CC BY-SA 3.0
2016-02-02T10:15:01.100
21625
2016-02-02T13:04:18.720
14103
question
java socket
JavaのSocketでクライアントの切断を検知したい


これでいかがでしょうか。

[code]

        while(true){
            byte[] data = new byte[1];
            if (in.read(data, 0, 1) == -1)
                break;
            System.out.println( (int)data[0] );
        }
    
[/code]


CC BY-SA 3.0
2016-02-02T13:04:18.720
21634
2016-02-02T13:04:18.720
5288
21625
answer