首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现socket的双向通信

问如何实现socket的双向通信
EN

Stack Overflow用户
提问于 2014-04-26 22:54:07
回答 1查看 54关注 0票数 0

我想在linux中使用TCP和UDP套接字进行双向通信。这个想法如下所示。这是一种传感器网络。

服务器端

while循环(

(1)检查是否有TCP控制报文传入,如果有,根据控制报文更新系统

对于所有其他时间,请继续发送UDP消息

)

客户端

while (

保持接收UDP广播报文

一旦它接收到100个UDP消息,它就必须向服务器发送TCP控制消息

)

第(1)部分是我唯一不能解决的地方。我发现如果在短时间内在(1)部分使用带有select()的非阻塞TCP套接字,系统很快就会返回0,并且不会收到控制消息。或者我会设置一个很长的select间隔,但是它会阻塞线路,并且UDP消息无法将其发送出去。我希望有效地发送UDP消息,前提是服务器也可以随时注意到客户端TCP控制消息。

谁能给我一些关于(1)部分的提示。

EN

回答 1

Stack Overflow用户

发布于 2014-04-27 07:52:54

只有在select()之后设置了相应的readFD,您才应该尝试recv()。如果select()返回0,则它们都没有被设置:超时已过期,因此除了发送UDP消息外,您不应该执行任何操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23312552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档