Linux 从不同线程发送UDP消息,C语言

Linux 从不同线程发送UDP消息,C语言,linux,c,udp,multithreading,Linux,C,Udp,Multithreading,我运行的系统有5个线程,所有线程同时向同一IP和端口发送UDP消息 linux如何处理这个问题?是否存在接收混合消息的风险?我正在使用sendto函数发送udp消息 非常感谢UDP是一种不可靠地传递单个数据包的方法,因为它不保证传递顺序,即使数据包已被接收 如果您需要可靠且有序地发送数据,请使用TCP,这就是它的用途。;) UDP是一种不可靠地传递单个数据包的方法,因为它不保证传递顺序,即使数据包已被接收 如果您需要可靠且有序地发送数据,请使用TCP,这就是它的用途。;) linux如何处理这个

我运行的系统有5个线程,所有线程同时向同一IP和端口发送UDP消息

linux如何处理这个问题?是否存在接收混合消息的风险?我正在使用sendto函数发送udp消息


非常感谢

UDP是一种不可靠地传递单个数据包的方法,因为它不保证传递顺序,即使数据包已被接收


如果您需要可靠且有序地发送数据,请使用TCP,这就是它的用途。;)

UDP是一种不可靠地传递单个数据包的方法,因为它不保证传递顺序,即使数据包已被接收

如果您需要可靠且有序地发送数据,请使用TCP,这就是它的用途。;)

linux如何处理这个问题

它处理得很好

是否存在接收混合消息的风险

不清楚你所说的“混合信息”是什么意思。与UDP的情况一样,不能保证数据包将以任何特定顺序到达目标端口,也不能保证它们将到达所有端口——但如果它们确实到达,则接收到的每个数据包中的数据将与先前发送的数据包中的数据相同。特别是,您不必担心接收数据包,例如,其中包含来自一个数据包的一半数据和来自另一个数据包的一半数据

linux如何处理这个问题

它处理得很好

是否存在接收混合消息的风险


不清楚你所说的“混合信息”是什么意思。与UDP的情况一样,不能保证数据包将以任何特定顺序到达目标端口,也不能保证它们将到达所有端口——但如果它们确实到达,则接收到的每个数据包中的数据将与先前发送的数据包中的数据相同。特别是,您不必担心接收数据包,例如,其中包含来自一个数据包的一半数据,以及来自另一个数据包的一半数据。

Linux不为您执行同步。您需要在线程之间实现某种IPC机制,或使用信号量或互斥量进行同步。使用UDP,您可以任意排列数据包。您甚至可以在端口接收来自不同PC的UDP消息。您没有机会以特定顺序获取它们。1
sendto()
是一个系统调用,所有系统调用都是原子的。2.UDP是一种数据报协议,数据报是原子的。因此不清楚“混合消息”是什么意思。每个线程都有自己的套接字还是共享同一个套接字?Linux不为您执行同步。您需要在线程之间实现某种IPC机制,或使用信号量或互斥量进行同步。使用UDP,您可以任意排列数据包。您甚至可以在端口接收来自不同PC的UDP消息。您没有机会以特定顺序获取它们。1
sendto()
是一个系统调用,所有系统调用都是原子的。2.UDP是一种数据报协议,数据报是原子的。因此不清楚“混合消息”是什么意思。每个线程都有自己的套接字还是共享同一个套接字?