同时在一个socket上send和recv会发生什么情况

vcbear 2001-09-22 12:45:14
多线程使用堵塞socket或者非堵塞socket反正在
1.recv函数未完成前在另一个线程里调用send
2.send函数未结束,在另一个线程里调用recv
会发生什么情况?

我等会自己试试
...全文
408 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2001-09-22
  • 打赏
  • 举报
回复
什么也不会发生sock是全双工的。
vcbear 2001-09-22
  • 打赏
  • 举报
回复
up一下回家
vcbear 2001-09-22
  • 打赏
  • 举报
回复
winsock其实都是把数据交给低层的驱动去完成的,一般情况下由驱动去进行缓冲,我不知道连续的两个或几个操作(在前一个操作未“成功”结束的情况下)会导致什么情况。失败?堵塞?混乱?

最讨厌的是今天没有时间自己试
随风bj 2001-09-22
  • 打赏
  • 举报
回复
一次recv或send就是一次操作,微观上系统在同一时间只会执行一个IO操作(单CPU),所以当一个操作没有完成时又发出了另一个IO请求(同步的情况下),那么第二个操作是不会被完成的,
而在异步的情况就不太一样了,当你recv或send时它会立即返回,当到底成功没有需要查看返回值,效率比较高,而为了更好的实现异步操作,有5种模型可以选择,他们的效率都比使用多线程好得多!
Hopping 2001-09-22
  • 打赏
  • 举报
回复
应该不会有什么问题吧?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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