结束socket接收线程
来源:互联网 发布:枚举数组 编辑:程序博客网 时间:2024/05/02 14:56
在用到socket的时候,一般手机都是客户端,不可避免的用到socket接收线程,接收从服务器发来的一些信息,当想退出时,肯定要结束掉这个接收线程,比如说下面的run函数
public void run() {// TODO Auto-generated method stubwhile(flag){if(!socket.isClosed() && socket.isConnected() && in != null){try {String result = in.readLine();if(result == null || result.length() <= 0){}else{System.out.println(result);}}catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();return;}}try{Thread.sleep(500);}catch(Exception e){e.printStackTrace();return;}}}
然后想结束时,先将flag置为false,再执行下面的CloseSocket函数
public void CloseSocket(){out.close();try {in.close();socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
这样看起来没错,但退出程序时会出现下面的错误,
错误的代码是这一句
String result = in.readLine();
因为我们已经关闭socket、in了,所以再去读取会出现这个错误,将CloseSocket函数改为下面就不会有这个错误了
public void CloseSocket(){try {socket.shutdownOutput();socket.shutdownInput();}catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}out.close();try {in.close();socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
- 结束socket接收线程
- socket 接收线程实现(帖子)
- socket 接收线程实现(帖子)
- 线程结束
- 结束线程
- socket数据包接收错误
- socket接收报错
- socket 接收文件死锁
- 阻塞socket 立即接收
- socket 接收数据不全
- Socket接收字节缓冲区
- socket 发送与接收
- Socket 发送接收实例
- Socket接收问题
- socket接收发送信息
- socket文件接收
- Socket 发送接收图像
- socket 接收图片数据
- 线程
- hdu 2036 一个数学的知识
- 财务流程-SAP方丈
- 有html代码的变量显示字符串而不是html解析显示
- UNIX内核(7):super block管理inode和磁盘块
- 结束socket接收线程
- 如果今年我大一
- 前景检测算法-SACON(SAMPLE CONSENSUS)
- QT不让windows休眠的方法
- Ruby中的Rake任务详述
- shell中while循环案例
- java编程思想-继承中的多态及相关思考
- 依赖倒置原则
- Stare only you