散分:在服务器端如果判断客户端的Socket已经关闭? 服务器端接收到客户端的Socket连接,创建了一个Socket的实例,但是,客户主动关闭了Socket以后,服务器端怎样才能判断得到呢?isClosed()方法好像不行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 try {} catch (IOException e) {} 又看了一下问题,根据你说的不用判断只有异常关闭的时候才用判断,你的客户Socket主动关闭,根本不用判断。 除了用异常判断,还有别的方法吗?to gemouzhi: isClosed()、isConnected()都不能判断得到。我的用意是想,当检测到客户端主动关闭Socket时,我就把服务器端的Socket清除掉。 这是起码的设计期你要做的事情吧,当然是客户端准备主动关闭Socket,先向server发一条“我要关闭”的消息,我还以为你检测异常关闭呢! 原来如此这个isConnected()你试了吗? 判断输入流的read(bytebuff)如果返回-1,表示对方关闭了套接字 如果客户端是正常关闭了,但由于应用的限制,不能够通过发包和接包来引起异常的话,就不能够用异常机制来处理了。不知到还有什么方法呢?现在只能够设置一个时延,超过这个时延都收不到客户端发来的包的话,就把socket关闭。 上面也有人说了 可以用read()也可以用readline() 返回null就是socket关闭 对象实例化过程 QQ通讯原理,以及怎么获取QQ好友ip地址! 串口通信中线程的应用 如何把TextArea中的数据打印出来?? 有人知道吗 在Eclipse里输入super()时怎么不不提示“构造函数”相关参数? 怎样获得系统cpu队列长度,用什么函数? 关于import的初级问题,大家帮忙 JAVA如何入门? 我是新手,Jbuilder的一系列问题,请各位帮忙 数据格式问题 征求排序算法,分不够可以加哦!
catch (IOException e) {}
to gemouzhi: isClosed()、isConnected()都不能判断得到。
我的用意是想,当检测到客户端主动关闭Socket时,我就把服务器端的Socket清除掉。
这个isConnected()你试了吗?
也可以用readline() 返回null就是socket关闭