Я пытаюсь транслировать сообщения через зарегистрированный несколько клиентов по протоколу 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
? - person Sourav Ghosh   schedule 02.02.2015struct sockaddr_in
. Есть нечто, называемое номер порта [sin_port
]. - person Sourav Ghosh   schedule 02.02.2015