Использование порта и IP-адреса в UDP-связи

У меня есть два клиента, и я хочу подключить их к демону, который использует сокет UDP. Он использует IP-адрес1 и порт №1 для связи. В каждом клиенте я создаю сокет с тем же IP-адресом и портом № 1, который использует демон. Можно ли использовать один и тот же IP-адрес и номер порта для обоих клиентов?


person Avb Avb    schedule 06.03.2014    source источник


Ответы (1)


Это зависит от того, что вы подразумеваете под «использованием».

Для обоих клиентов правильно выполнять connect() или sendto(), используя IP и порт, который слушает демон.

Ни один из клиентов не может выполнять bind() с использованием IP-адреса и порта, которые слушает демон.

person Marcus    schedule 06.03.2014
comment
Я хочу использовать методы sendto() и recv() для отправки и получения данных. Когда я буду использовать bind()? Для чего его используют? - person Avb Avb; 07.03.2014
comment
bind() используется только тогда, когда вы хотите контролировать исходный IP-адрес и/или порт, который будет использовать ваш клиент. Когда вы вызываете sendto() в сокете UDP, операционная система выполнит для вас неявный bind(), поэтому обычно клиенту не нужно вызывать bind(). - person Marcus; 07.03.2014