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_lingerl_onoff = 1;
so_lingerl_linger = 0;
setsockopt(soc_client, SOL_SOCKET, SO_LINGER, (char )&so_linger, sizeof(so_linger));


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10545523.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存