如何正确的关闭socket (linux)

曾经遇到过好几个问题,都是与客户端或者服务端没有完整关闭socket相关的。在代码里,随处可见这类问题,只是隐藏较深,不容易暴露bug而已。

一个半关闭状态的socket,其发起关闭的一方状态是FIN_WAIT2, 另一方是WAIT_CLOSE

网上有几篇言简意赅的文章,拿来借鉴。

参考文档链接:

关于“远端已经关闭连接,为何socket send()还是返回成功?”的讨论

Socket.Send() succeeds, but remote end point closed the connection“

- http://bytes.com/topic/c-sharp/answers/501034-socket-send-succeeds-but-remote-end-point-closed-connection


MSDN 上的文章: 正常的shutdown,linger 选项和和套接字关闭 

Graceful Shutdown, Linger Options, and Socket Closure

- http://msdn.microsoft.com/en-us/library/ms738547



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值