永发信息网

c调用 socket 如果客户端连接断开,怎么判断? 还有怎么向多个 连接在一个服务器上的多个客户

答案:3  悬赏:70  手机版
解决时间 2021-03-23 05:54
  • 提问者网友:暮烟疏雨之际
  • 2021-03-22 22:37
c调用 socket 如果客户端连接断开,怎么判断? 还有怎么向多个 连接在一个服务器上的多个客户端发送同样的内容
最佳答案
  • 五星知识达人网友:醉吻情书
  • 2021-03-22 23:22
一:
如果客户端关闭连接,服务器端会收到一条连接关闭的消息,对应到你的C函数API就是,使用recv(或者read),读出的大小为0,此时就表明客户端断开连接了,如果是TCP的话,你也调用一次close(或者shutdown),这样就可以把一个TCP连接完美优雅的断开。
二:
服务器编程肯定会在accept新连接之后,保存在一个数据结构中的。发送同样的内容,只需要遍历此数据结构即可。
全部回答
  • 1楼网友:人類模型
  • 2021-03-23 00:00
长连接需要用心跳包来保持连接 如果超过N个心跳包没有了说明客户端掉线了 默认情况下TCP连接有一个默认超时时间(即N秒没有通讯就自动转time_wait) 另外服务端在编写代码的时候应该把连接上的客户端的socket放到一个socket队列(用于存储在线的客户端) 每个发送一次 你就轮询一次发送一次就好了 UDP不再讨论范围内
  • 2楼网友:神的生死簿
  • 2021-03-22 23:46
1. recv函数返回0。 2. 如果是长连接,可以通过心跳包实现。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯