黑马程序员技术交流社区

标题: 关于聊天室 [打印本页]

作者: 柏云杉    时间: 2012-3-27 12:03
标题: 关于聊天室
学习了聊天室的练习。服务器端创建了一个线程专门监听客户端的连接请求。
一旦监听到就会创建一个新的线程专门来接受改客户发来的消息。
那么如果这个客户断开了连接,那在服务器端怎么结束相应的线程  ?
作者: 蔚强    时间: 2012-3-27 13:28
    你在客户端应该调用的是线程的Abort()方法吗?你在服务端也调用响应的线程的Abort()方法,建议你在编程的时候养成这样的习惯,就是你在使用Socket,或者Thread的对象前都判断一下对象的实例是否为空。
作者: 柏云杉    时间: 2012-3-27 14:48
蔚强 发表于 2012-3-27 13:28
你在客户端应该调用的是线程的Abort()方法吗?你在服务端也调用响应的线程的Abort()方法,建议你在编程 ...



我把recSocket.Receive(recMsg);写在了try catch里面。
本来打算发生异常就结束这个进程,结果它自动就Abort了。。。
只需要Dispose相应的Socket就可以了  。。
作者: 蔚强    时间: 2012-3-27 18:20
      你这样写好像失去了try-catch的意义了,不是应该把最有可能错误的代码写到try里面吗?catch是捕获到相应的异常,我们进而处理的啊
catch里面一般都是弹出响应的异常啊。。。你把代码写到catch我有点不理解了。
作者: 柏云杉    时间: 2012-3-27 19:14
蔚强 发表于 2012-3-27 18:20
你这样写好像失去了try-catch的意义了,不是应该把最有可能错误的代码写到try里面吗?catch是捕获到 ...

因为客户端窗体一关闭,服务器这边就会出现异常。所以写进去了。
出现异常就关闭掉。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2