C 从UDP多播地址获取流

C 从UDP多播地址获取流,c,networking,udp,multicast,C,Networking,Udp,Multicast,我正在编写一个程序,接收发送到多播组地址的UDP流。假设我有一个像udp://249.0.0.1。对于这个地址,我接收到两个流到两个不同的端口,比如2500和2600。我需要编写一个C程序,在一个程序中从不同的端口获取两个流。您能推荐一个起点(教程、有用的API等)吗?创建2个UDP套接字,为多播地址注册这两个套接字 您可以使用以下任一方法获取数据: 2个进程(分叉),阻塞插座 2个线程(pthread),阻塞套接字 1螺纹,非阻塞插座。对于解复用,您需要选择、轮询或epoll 创建2个UDP

我正在编写一个程序,接收发送到多播组地址的UDP流。假设我有一个像
udp://249.0.0.1
。对于这个地址,我接收到两个流到两个不同的端口,比如2500和2600。我需要编写一个C程序,在一个程序中从不同的端口获取两个流。您能推荐一个起点(教程、有用的API等)吗?

创建2个UDP套接字,为多播地址注册这两个套接字

您可以使用以下任一方法获取数据:

  • 2个进程(分叉),阻塞插座
  • 2个线程(pthread),阻塞套接字
  • 1螺纹,非阻塞插座。对于解复用,您需要选择、轮询或epoll

创建2个UDP套接字,为多播地址注册这两个套接字

您可以使用以下任一方法获取数据:

  • 2个进程(分叉),阻塞插座
  • 2个线程(pthread),阻塞套接字
  • 1螺纹,非阻塞插座。对于解复用,您需要选择、轮询或epoll

基本上,您希望有人免费为您编写多播客户端的基础知识吗?网络上有大量的示例代码和教程,详细描述了如何做到这一点。@Mark Mann:对不起,我在网上找不到任何帮助这里有几本看起来不错:这里有几本书和(圣经)。如果你没有读过史蒂文斯的书,我强烈推荐。它将解释多路连接以及多播套接字编程。如果你从他的TCP图解书开始,你将从理论到实践层面全面了解整个主题。仅供参考:
249.0.0.1
不是一个多播地址。本质上,你希望有人免费为你编写多播客户端的基础知识吗?网络上有大量的示例代码和教程,详细描述了如何做到这一点。@Mark Mann:对不起,我在网上找不到任何帮助这里有几本看起来不错:这里有几本书和(圣经)。如果你没有读过史蒂文斯的书,我强烈推荐。它将解释多路连接以及多播套接字编程。如果你从他的TCP图解书开始,你将从理论到实践层面全面了解整个主题。仅供参考:
249.0.0.1
不是多播地址。再次感谢yi_H。。。当我使用select、poll或epoll时,一次只能监听一个端口。但需要连续监听两个端口:(所有这些都是专门为同时侦听多个文件描述符而设计的(您甚至可以混合使用套接字、管道和标准io).stevens书的代码示例可在线获取,请查看。再次感谢yi_H…当我使用select、poll或epoll时,一次只能侦听一个端口。但需要连续侦听两个端口。:(所有端口都是专门设计为同时侦听多个文件描述符的。)(你甚至可以混合使用插座、管道、标准io)。史蒂文斯书的代码示例可以在线获得,请查看。