1. 用read函数来判断
读到长度0不能断定是已经断开.除非是-1,才代表输入流已经被关闭,说名socket已经close,而且关键在于你怎么读,实际上应该是一个单独的线程一直在读,因为你无法预先知道能不能一次将发过来的包读完,也无法知道一次是不是读完整了包,所以线称一直循环在读并且一直在解包.这样即能知道什么时候server断,也完成了消息的解读,我的方案是这样的
本文介绍了多种判断SOCKET是否仍然连接的方法,包括使用read函数、心跳包机制、getsockopt函数,以及结合发送和接收数据进行判断。在实际项目中,结合使用这些方法可以有效地检测与服务器的连接状态。
1. 用read函数来判断
读到长度0不能断定是已经断开.除非是-1,才代表输入流已经被关闭,说名socket已经close,而且关键在于你怎么读,实际上应该是一个单独的线程一直在读,因为你无法预先知道能不能一次将发过来的包读完,也无法知道一次是不是读完整了包,所以线称一直循环在读并且一直在解包.这样即能知道什么时候server断,也完成了消息的解读,我的方案是这样的
737

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