socket中如果设置两个recv函数,会怎么样?

politeness1983 2008-07-17 11:20:13
一方面,某些按键的响应函数需要主动向服务端发送消息,然后接收消息进行相应的操作.另一方面,又要不停试探服务端是否有主动发过来的消息,如果有的话也进行相应的操作.那我设想在按键的响应函数中放置一个recv函数,发送消息后立马接收回应.同时新开一个线程在while中不断监视服务端发过来的消息,过滤出想要的.
这样的话形成了一个局面,同一个socket在接收某些消息时出现了两个recv,那请问会出现什么情况,哪个先运行就被哪个接收呢,还是两个都会接收数据?
...全文
148 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2008-07-17
  • 打赏
  • 举报
回复
用一个recv多好。
politeness1983 2008-07-17
  • 打赏
  • 举报
回复
看来只能把它放到一个分线程里了.不爽的是分线程只能调用静态函数,静态变量,而且还有线程同步的问题,我原来想尽量不用多线程
shanying_0 2008-07-17
  • 打赏
  • 举报
回复
我觉得可以用一个rec.,可以把把rec放在定时器中.定时检测接收有无消息过来就可以.要用2个.在说你用2个rec的话好象不能实现,有可能2个rec都同时接受消息的可能性.那就是要处理2次了?要是这样的话,就不可以了.用一个rec完全可以实现你上边的功能!!!
孤客天涯 2008-07-17
  • 打赏
  • 举报
回复
谁先recv那么谁先接收,如果数据全部收完,另一个就收不到了,应该避免这种请况发生,最好recv在一个线程里,这个线程只处理数据接收,至于数据的处理应该放到其它线程里做
cppwin 2008-07-17
  • 打赏
  • 举报
回复
应该是 哪个先运行就被哪个接收

16,471

社区成员

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

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

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