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

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();
    }
}

よろしくお願いします。