socket客户端关闭,服务端怎么处理

socket客户端关闭,服务端怎么处理,第1张

服务器端发起关闭,要让服务器发送RST而不是FIN, 这时客户端收到RST后send会直接返回失败(这时就检测出服务器已关闭)而不是阻塞。

如果直接调用closesocket会发送FIN, 需要设置linger使closesocket直接发送RST

代码:

SOCKET soc_client = ::accept(soc_listen, (struct sockaddr *)&client_addr, &len)

struct linger so_linger

so_linger.l_onoff = 1

so_linger.l_linger = 0

setsockopt(soc_client, SOL_SOCKET, SO_LINGER, (char *)&so_linger, sizeof(so_linger))

老大给你个好东东

那就是————网络执法官,有了它你会变的像孙悟空那样神通广大!!

http://www.gougou.com/search?search=%E7%BD%91%E7%BB%9C%E6%89%A7%E6%B3%95%E5%AE%98&suffix=&restype=-1&id=2


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/616477.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-14
下一篇2023-07-14

发表评论

登录后才能评论

评论列表(0条)

    保存