socket 里面的send和recv的调用有先后顺序的吗

yeyinghua 2011-05-21 05:26:49
刚刚试了一下服务器线程先调用
{。。。。。。
。。。。。。。。
while(1)
{
..........
send();
recv();
.......
}

客户端
{
。。。。。。。。。。。。。。
。。。。。。。。。。。
recv()
send()
....
......
}
上述的情况是不行的

但是如果是如下调用就没问题

{。。。。。。
。。。。。。。。
while(1)
{
..........
recv();
send();
.......
}

客户端
{
。。。。。。。。。。。。。。
。。。。。。。。。。。
send()
recv()

....
......
}

请高手解答!谢谢
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
冻结 2011-05-21
  • 打赏
  • 举报
回复
send也会阻塞,在内核中socket输出缓冲区中,如果没有空间,send就阻塞了。
merlinfang 2011-05-21
  • 打赏
  • 举报
回复
代码有BUG
就想叫yoko 2011-05-21
  • 打赏
  • 举报
回复
send非阻塞函数
recv阻塞函数, 收不到数据会阻塞在那不走下面的代码
downmooner 2011-05-21
  • 打赏
  • 举报
回复
可以这样。你代码有问题。

64,653

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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