У меня есть два клиента, и я хочу подключить их к демону, который использует сокет UDP. Он использует IP-адрес1 и порт №1 для связи. В каждом клиенте я создаю сокет с тем же IP-адресом и портом № 1, который использует демон. Можно ли использовать один и тот же IP-адрес и номер порта для обоих клиентов?
Использование порта и IP-адреса в UDP-связи
Ответы (1)
Это зависит от того, что вы подразумеваете под «использованием».
Для обоих клиентов правильно выполнять connect()
или sendto()
, используя IP и порт, который слушает демон.
Ни один из клиентов не может выполнять bind()
с использованием IP-адреса и порта, которые слушает демон.
person
Marcus
schedule
06.03.2014
Я хочу использовать методы sendto() и recv() для отправки и получения данных. Когда я буду использовать bind()? Для чего его используют?
- person Avb Avb; 07.03.2014
bind()
используется только тогда, когда вы хотите контролировать исходный IP-адрес и/или порт, который будет использовать ваш клиент. Когда вы вызываете sendto()
в сокете UDP, операционная система выполнит для вас неявный bind()
, поэтому обычно клиенту не нужно вызывать bind()
.
- person Marcus; 07.03.2014