怎么才能优雅地关闭连接

Jenf_Mu 2017-08-09 08:22:49
看recv函数的返回值官方文档。提到了“优雅地关闭连接,就返回0“,但是我在客户端调closesocket,server端还是得到-1啊

[code=txt] If the connection has been gracefully closed, the return value is zero.[/code]

...全文
609 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
euber2 2017-09-26
  • 打赏
  • 举报
回复
网络编程有时候服务器或者客户端并不能很好的检测到对方断开,一般的做法是设置超时机制,超过一段时间没有接收到对方的心跳同步包则认为对方已经断开了,此时服务器应该主动断开连接,尤其是在GPRS网络尤为明显。
smwhotjay 2017-08-22
  • 打赏
  • 举报
回复
多改代码收发 测试。 优雅有时并没有什么卵用。你服务器优雅,别人客户端各种环境,突然断开,你没办法让客户优雅的。
shenyi0106 2017-08-11
  • 打赏
  • 举报
回复
shutdown(fd, SD_BOTH)
赵4老师 2017-08-10
  • 打赏
  • 举报
回复
要 接收最后一条消息后关闭连接 而不要 发送最后一条消息后关闭连接。
zgl7903 2017-08-10
  • 打赏
  • 举报
回复
-1 就是 SOCKET_ERROR , WSAGetLastError 分类处理错误信息
Eleven 2017-08-09
  • 打赏
  • 举报
回复
To assure that all data is sent and received on a connected socket before it is closed, an application should use shutdown to close connection before calling closesocket.

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧