关于WinSock原理的一个很基础的问题

wuxia2118 2018-12-21 09:02:20
书上说 send()函数并不会将消息发送出去,只是将消息存入到本机的WinSock缓冲区中,而如果本机缓冲区中有数据,用recv() 函数就能读取缓冲区中的数据。

因此,按道理来说,即使我做一个WinSock的服务器端(或客户端),不联网,先用send函数发送个消息到缓冲区,然后再用recv函数就能读取缓冲区中的数据。

但是我做了个实验,这样用recv函数并不能接收到任何数据。请问能解释下这是为什么吗
...全文
344 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sichuanwww 2018-12-21
  • 打赏
  • 举报
回复
没有联网,IP用 127.0.0.1可以测试啊
Eleven 2018-12-21
  • 打赏
  • 举报
回复
一个发送缓冲区,一个接收缓冲区~
叶恭介叶恭介 2018-12-21
  • 打赏
  • 举报
回复
可能有两个缓冲区吧,楼主这精神鼓励
wuxia2118 2018-12-21
  • 打赏
  • 举报
回复
我是用127.0.0.1测试的。我觉得应该是,服务器与客户端没有建立连接,那就根本不会产生一个 连接后的套接字,因此 send函数和recv() 函数的执行都会失败,也就是说send函数根本没有把数据存入的到缓冲区里,当然recv函数也不可能从缓冲区中取出信息啊。

一个发送缓冲区,一个接收缓冲区,有这种可能吗?

18,355

社区成员

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

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