【问题标题】:How to make two ways socket communication如何进行两种方式的socket通信
【发布时间】:2014-04-26 14:54:07
【问题描述】:

我想在 linux 中使用 TCP 和 UDP 套接字进行两种通信。思路如下。这是一种传感器网络。

服务器端

while 循环 (

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

在所有其他时间,继续发送垃圾邮件 UDP 消息

)

客户端

而(

继续接收UDP广播消息

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

)

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

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

【问题讨论】:

    标签: sockets tcp udp


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      相关资源
      最近更新 更多