在做毕设时发现了这个问题:
当客户端和服务端连接的过程中时
客户端主动关闭socket时,可以发现服务端对应的socket还是保持着连接
对于这个情况,
byte[] buffer = new byte[128];
int limit = 0;
while ((limit = bis.read(buffer)) != -1) {
log.info("接收到数据");
log.info("limit ---" + limit + buffer[0]);
for (int i = 0; i < limit; i++) {
System.out.print(" "
+ MessageDealWithUtil.toHexString(buffer[i]));
}
;
this.analyseBytes(buffer, limit);
}
在这里面,在这个read()方法,由原本的暂时在这,会在一会儿,跳出循环体了。
也就意味着,服务端的socket是在过一段时间之后才发现已经关闭的;
本文探讨了在网络通信中,当客户端主动关闭socket连接时,服务端如何感知这一变化的过程。通过分析socket读取方法的行为变化,揭示了服务端检测到连接断开的具体时机。
1958

被折叠的 条评论
为什么被折叠?



