Я пытаюсь транслировать сообщения через зарегистрированный множественный клиент по протоколу UDP.Как транслировать через UDP-сокеты?
Я считаю, что нам нужно ниже две команды для отправки и получения через сокеты:
sendto(sock,buffer,
strlen(buffer),0,(const struct sockaddr *)&server,length);
recvfrom(sock,buffer,256,0,(struct sockaddr *)&from, &length);
Как видим, нам нужно 6 аргумент в то же, второй последний является адрес получателя. В случае клиента к серверу у нас есть адрес. Но от сервера к клиенту мы имеем только адрес последнего клиента, из которого получено сообщение.
Я также пытался хранить адреса всех сокетов, которые подключаются к серверу по крайней мере один раз, так что мы можем использовать sendto(), но поскольку все клиенты работают на одном компьютере, это &from
кажется таким же.
Какие альтернативы доступны? Где я иду не так? Я просто хочу передать сообщение всем клиентам, работающим на локальной машине. ?
Я смущен. Вы имеете в виду 'multicast' вместо' broadcast'? –
Я хочу отправить сообщение всем клиентам одновременно. – mkkhedawat
проверьте структуру 'struct sockaddr_in'. Есть что-то под названием _port number_ ['sin_port']. –