我正在Linux Ubuntu上编写一个C ++多播应用程序。
在我的C ++多播发送器类中,我这样做:
uint16_t port = 5678;const char * group =“239.128.128.128”;
int fd = socket(AF_INET,…
是。
根据文档 男人7 udp
什么时候 在套接字上调用connect(2),默认目标地址 已设置,数据报现在可以使用send(2)或write(2)发送 没有指定目的地地址。
并且,为了一般性,POSIX规范 连 说
如果启动套接字不是连接模式,则connect()将设置套接字的对等地址,并且不进行连接。对于SOCK_DGRAM套接字,对等体地址标识在后续send()函数上发送所有数据报的位置,并限制远程发送器用于后续的recv()函数。
总是值得检查文档中的这些,事情,事实并非如此 那 令人费解的。 FWIW我不记得你是否需要 connect() 要么 bind() 为此,我花了几秒钟才发现。
connect()
bind()