c调用 socket 如果客户端连接断开,怎么判断? 还有怎么向多个 连接在一个服务器上的多个客户
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c调用 socket 如果客户端连接断开,怎么判断? 还有怎么向多个 连接在一个服务器上的多个客户相关的知识,希望对你有一定的参考价值。
c调用 socket 如果客户端连接断开,怎么判断? 还有怎么向多个 连接在一个服务器上的多个客户端发送同样的内容
参考技术A 一:如果客户端关闭连接,服务器端会收到一条连接关闭的消息,对应到你的C函数API就是,使用recv(或者read),读出的大小为0,此时就表明客户端断开连接了,如果是TCP的话,你也调用一次close(或者shutdown),这样就可以把一个TCP连接完美优雅的断开。
二:
服务器编程肯定会在accept新连接之后,保存在一个数据结构中的。发送同样的内容,只需要遍历此数据结构即可。 参考技术B
recv函数返回0。
如果是长连接,可以通过心跳包实现。
另外服务端在编写代码的时候应该把连接上的客户端的socket放到一个socket队列(用于存储在线的客户端) 每个发送一次 你就轮询一次发送一次就好了
UDP不再讨论范围内
以上是关于c调用 socket 如果客户端连接断开,怎么判断? 还有怎么向多个 连接在一个服务器上的多个客户的主要内容,如果未能解决你的问题,请参考以下文章
C#socket通信时,怎样判断socket双方是不是断开连接