当前页面: 开发资料首页 → J2SE 专题 → 问一个非常菜的问题socket监听端口怎么判断客户端非法断开
问一个非常菜的问题socket监听端口怎么判断客户端非法断开
摘要: 问一个非常菜的问题socket监听端口怎么判断客户端非法断开
同主题
Socket.isConnected() 可以判断是否还连着
没有其他事件么,那个需要我主动去调用,为什么客户端断开连个异常都没有呢
看来只有用setSoTimeout(10000) 设置过期时间如果客户端10秒内不发送东西就默认断开,不知道还有没有更好的方法
你可以在这个 socket 上做 read(),如果对方断开,你能得到一个 IOException
我做了read()可实际上如果拔网线并不能得到任何Exception.
我连‘非常菜’的级别都不是,唉!涂墙!
hehe, 好像“拔网线”是得不到什么通知的,read() 只能感知到对端的 close()。
恐怕只能周期性地发个 packet 试试了~~
这个我试过做一个C/S的
因为要不停读取
所以在socket.accept()后开始执行一个线程
run()方法里
while(true){ read()}
连上后一断开读不到东西就会报错
此时break; + 个 print()语句就可以抓到错误了
恩看来还真是没什么好办法。谢谢大家:)