socket连接建立后,如何判断这个socket连接没有通讯?

ptnetwork 2005-09-16 09:05:25
小弟在写socket的程序,现在遇到一个问题,就是在client socket和server socket通讯过程中,有段时间可能是空闲的,如果空闲时间超过3分钟的话,我(client socket)要发送测试包过去,server socket收到测试包要返回一个测试返回包,如果我没有收到这个返回包,我就当server socket已经失效,我就断开我的socket。

问题:有什么办法可以判断socket链接是空闲的?有现成函数?还是代码?或者我自己去搜索的时候搜索关键字应该是什么?

哪位知道的帮忙给个提示吧,先谢了.
...全文
209 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ptnetwork 2005-09-20
  • 打赏
  • 举报
回复
现在的解决办法是每次读/写数据流都用System.currentTime记下当前时间,然后有个程序一直在监视这个System.currentTime时间是不是3mins都没有变化,然后根据情况来做发送测试包/其他操作.Anyway,谢谢大家的回复,多谢。
ptnetwork 2005-09-20
  • 打赏
  • 举报
回复
不好意思,可能我没有把问题说清楚, FKE_TOM(志强)和 flyxxxxx(灭神) 说得只是看客户端有没有发数据过来,我是想如果客户端没有发数据过来那么我要主动发个测试包过去, itjourney(IT之旅)说timeout,那样子我怕时间一到没有发测试包过去而是马上断开socket,我的本意是:如果socket链接空闲超过3mins,应该客户端或者服务端发测试包给对方,测试包接收方要予以回应,发了3次都没有回应的话才断开链接。说得太急,可能言语会有冒犯,还请原谅.
FKE_TOM 2005-09-16
  • 打赏
  • 举报
回复
你只要看看有无数据流就知了
如:
line = dis.readLine(); //读取客户端发来的数据流
if (line == null) { //客户已经离开
ptnetwork 2005-09-16
  • 打赏
  • 举报
回复
回的真快啊,我才刚接触socket一个星期啊,可是现在一定要编出来.如果自己写一个函数测得话,可不可以说一下思路?
pioneer_csdn 2005-09-16
  • 打赏
  • 举报
回复
这个还真不知道``自己写一个函数测也不难吧`
flyxxxxx 2005-09-16
  • 打赏
  • 举报
回复
InputStresm is=s.getInputStream();
if(is.available()>0){



}
itjourney 2005-09-16
  • 打赏
  • 举报
回复
设定timeout不就得了?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧