linux c语言 recv

用UDP协议接收数据,数据理论情况下是一直在传送,有时会停,长的时候会停几天,但是我不能让程序终止。以上是我编程的背景。现在我用recv接收数据,我看到一般数据停止后re... 用UDP协议接收数据,数据理论情况下是一直在传送,有时会停,长的时候会停几天,但是我不能让程序终止。以上是我编程的背景。
现在我用recv接收数据,我看到一般数据停止后recv会一直在那里等下去,直到数据来了再往下,但是现在的情况是数据停止之后再重新播发之后我还是收不到,貌似recv还是一直在那里等着,收不到数据,不知道有谁遇到过这种情况吗?
展开
 我来答
xaviet
2014-05-13 · TA获得超过129个赞
知道小有建树答主
回答量:197
采纳率:50%
帮助的人:170万
展开全部
下面方法或许有用:
recv()之前增加select()检查buff中是否有数据,无数据则不recv()
追问
recv返回-1不就代表没有数据吗。如果是这样要怎样处理呢?
追答
返回负数是select出错,没数据返回0,这时候让程序忙其他的吧,过段时间再select,如此循环。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式