如何进行套接字通信的两种方式

时间:2014-04-26 14:54:07

标签: sockets tcp udp

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

服务器端

while循环(

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

所有其他时间,不断发送垃圾邮件

客户端

while(

继续接收UDP广播消息

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

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

有人可以给我一些关于(1)部分的提示。

1 个答案:

答案 0 :(得分:0)

如果在select()之后设置了相应的readFD,则应该只尝试recv()。如果select()返回零,则不会设置任何一个:超时已过期,因此除了发送UDP消息之外,您不应该这样做。