专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > J2SE

如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket

发布时间:2010-06-05 05:30:58 文章来源:www.iduyao.cn 采编人员:星星草
紧急求助:JAVA中TCP的SOCKET通信超时处理
问题描述:
  偶现在实现一个SCKET通信CLIENT端,用线程实现的,要求设置一定的超时时间,如果时间超时,那么就不再等待服务器端传输的数据,直接结束SOCKET。
  不知道怎么实现?请各位大虾指点一二!
  不胜感激!!

------解决方案--------------------
socket.setSoTimeout();
------解决方案--------------------
setSoTimeout
public void setSoTimeout(int timeout)
throws SocketException启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用 read() 将只阻塞此时间长度。如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket 仍旧有效。选项必须在进入阻塞操作前被启用才能生效。超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。 

超时后你在捕捉异常时就可以直接结束SOCKET。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: