当SocketServer断开或发生Wifi网络变化的时候,SocketClient应该如何处理异常。

来源:互联网 发布:淘宝上的k歌麦克风 编辑:程序博客网 时间:2024/04/30 16:34

  PC SocketServer、手机SocketClient
当SocketServer断开或发生Wifi网络变化的时候,SocketClient应该如何处理异常。

private class ReceiveThread extends Thread{    private InputStream mInputStream = null;    private byte[] buf ;      private String str = null;        ReceiveThread(Socket s)    {        try         {        //获得输入流        this.mInputStream = s.getInputStream();        } catch (IOException e) {            e.printStackTrace();        }    }        @Override    public void run()    {        while(!stop)        {            this.buf = new byte[512];                        //读取输入的数据(阻塞读)            try {                this.mInputStream.read(buf);            } catch (IOException e1) {                e1.printStackTrace();            Message msg = new Message();            msg.what = 2;            msg.obj ="断开";            //发送消息            mHandler.sendMessage(msg);            stop = true;            mReceiveThread.interrupt();            break;            }catch (Exception e) {               Message msg = new Message();            msg.what = 2;            msg.obj ="断开";            //发送消息            mHandler.sendMessage(msg);            stop = true;            mReceiveThread.interrupt();            }                          //字符编码转换            try {                this.str = new String(this.buf, "GB2312").trim();            } catch (UnsupportedEncodingException e) {            Log.e("通讯异常2", e.toString());                e.printStackTrace();            }            Message msg = new Message();            msg.what = 1;            msg.obj = this.buf;            //发送消息            mHandler.sendMessage(msg);        }    }}


 

0 0