A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柏云杉 中级黑马   /  2012-3-27 12:03  /  1750 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学习了聊天室的练习。服务器端创建了一个线程专门监听客户端的连接请求。
一旦监听到就会创建一个新的线程专门来接受改客户发来的消息。
那么如果这个客户断开了连接,那在服务器端怎么结束相应的线程  ?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

4 个回复

倒序浏览
    你在客户端应该调用的是线程的Abort()方法吗?你在服务端也调用响应的线程的Abort()方法,建议你在编程的时候养成这样的习惯,就是你在使用Socket,或者Thread的对象前都判断一下对象的实例是否为空。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
蔚强 发表于 2012-3-27 13:28
你在客户端应该调用的是线程的Abort()方法吗?你在服务端也调用响应的线程的Abort()方法,建议你在编程 ...



我把recSocket.Receive(recMsg);写在了try catch里面。
本来打算发生异常就结束这个进程,结果它自动就Abort了。。。
只需要Dispose相应的Socket就可以了  。。

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
      你这样写好像失去了try-catch的意义了,不是应该把最有可能错误的代码写到try里面吗?catch是捕获到相应的异常,我们进而处理的啊
catch里面一般都是弹出响应的异常啊。。。你把代码写到catch我有点不理解了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
蔚强 发表于 2012-3-27 18:20
你这样写好像失去了try-catch的意义了,不是应该把最有可能错误的代码写到try里面吗?catch是捕获到 ...

因为客户端窗体一关闭,服务器这边就会出现异常。所以写进去了。
出现异常就关闭掉。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马