【发布时间】:2014-03-19 06:42:34
【问题描述】:
我正在 C 中创建多播服务器/客户端 udp 应用程序,其中服务器正在向多播客户端组发送数据,如果未收到数据,则客户端请求重新传输。我想在服务器端和客户端创建两个套接字。在服务器端,一个套接字用于发送多播,另一个用于接收来自客户端的回复。在客户端,一个套接字用于接收数据,另一个用于回复服务器。让我感到困惑的是因为套接字连接到多播组......客户端使用套接字加入该组。我可以使用两个套接字和一个多播组还是应该创建两个组?什么是最有效的解决方案?我不能有延迟,因为它将是实时的……你有什么建议吗?
谢谢
【问题讨论】:
-
我认为您应该使用相同的套接字来发送消息和获得确认。
-
您是否有一些争论,为什么使用一个套接字发送而另一个套接字接收是不合逻辑的?如果我决定使用两个套接字,那么多播实现呢?你有经验吗?
-
是的,我拥有许多标准协议,例如 101 103 modbus。它们是通信标准,没有为确认定义第二个端口。并且不要告诉我你将使用第三个套接字进行数据传输
-
您需要在一台服务器端使用更多线程来处理确认,还是一个线程就足够了?那么为什么像 tftp 这样的协议使用不同的端口来发送和接收呢?对不起,我很困惑...
-
不要混淆,会有两个线程,一个在该套接字上连续写入,一个在同时读取同一个套接字。
标签: c udp multicast multicastsocket