net.conn.write的疑惑

weixin_38063619 2019-09-20 10:41:28
//socket通信服务端代码



//socket通信客户端代码


问题:客户端连接服务端后发送消息,随后睡眠5s,在这期间,服务端没有输出客户端发送的内容,直到客户端关闭,服务端才会输出客户端的内容。

请问这是什么原因?
...全文
169 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38107144 2019-09-20
  • 打赏
  • 举报
回复
io.Copy会循环从conn里读取消息,写入到buffer, 直到EOF或者出错。 在正常网络条件下不会出错, 那就只有等到EOF了,客户端写入“Hello world” 后不会造成 服务端EOF,只有客户端time.Sleep完毕后,执行defer conn.Close() 才会造成服务器io.Copy遇到EOF, 然后输出buffer.String()

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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