java socket 客户端异常中断问题

java socket 问题,服务器端可以接收客户端数据,但是,当客户端断电在连上时,服务器端收不到客户端的数据,除非重启服务器端才可以继续收到数据。我想让:及时客户端异常中断,随后在向服务器端发送数据的时候,服务器端不需要重启也能继续收到数据

public void run(){

        try{
        ServerSocket serverSocket = new ServerSocket(5007);
        System.out.println("Server Listening");
        while(true){
            Socket socket1 = serverSocket.accept();
            System.out.println("connection request:");

            InputStream ips = socket1.getInputStream();

            /*System.out.println(ips.toString());
            InputStreamReader ipsr = new InputStreamReader(ips);
            BufferedReader br = new BufferedReader(ipsr);
            String s = br.readLine();        
            while(br.readLine() != null){
                System.out.println(s);
                s=br.readLine();
           }*/

           DataInputStream in = null;
           in = new DataInputStream(ips);

             String string = in.readLine();

             String[] str = string.split("kg");

            Double weight = Double.parseDouble(str[0]);
            String b = str[1];
            Double price = Double.parseDouble(b.replaceAll("\\D+", ""));
            String type = b.replaceAll("\\d+", "");
            Double totalPrice = price*weight;

            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            String datetime = df.format(new Date());

            DBUtil.add(type,weight,price,totalPrice,datetime);

            socket1.close();
        }
    }catch (Exception e){
        System.out.println(e);
    }
}

求帮助啊,,,!!!

服务端估计也抛出异常了吧,while循环就结束了,服务器端的这个监听线程应该会结束。注意 try catch的使用位置

server端弄一个accept()的while死循环