请教高手,SOCKET接收阻塞和发送非阻塞

feiying2222 feiying2222 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位大侠,我在程序中使用了SOCKET UDP编程,未使用I/O模型,大家都知道默认情况下SOCKET是阻塞的,因此我创建的接收线程里放置了recvfrom并通过不断循环(阻塞)接收网络数据,在时码板的中断中sendto发送数据。
前几天发现了这一情况,当服务器未开机时,我使用sendto每次发送1024字节以上的数据帧时,总要阻塞几秒钟(因为性能要求高,程序几乎不能发生任何阻塞,否则影响时码板中断造成程序死慢),因此我就把socket设置为非阻塞模式,sendto不阻塞了,但是新问题又来了recvfrom的接收线程由于非阻塞不断地循环,造成程序CPU占用100%。
请问这种情况一定要使用I/O模型才能解决吗?我的目标是“接收阻塞,发生不阻塞!”,仅此而已!
先谢谢了!
...全文

相关推荐

评论 20
收藏 已收藏
分享
返回顶部
feiying2222
网络编程 18,356 成员 64,161 内容