Важно понимать, что TCP ориентирован на соединение, а UDP - это протокол без установления соединения.
- TCP: сначала необходимо подключиться перед отправкой / получением данных на / с удаленного хоста..
- UDP: Соединение не требуется.Вы можете отправлять / получать данные на / с любого хоста.
Обычно вы будете использовать sendto()
на сокете UDP для указания пункта назначения.Точно так же вы обычно используете recvfrom()
, чтобы узнать, откуда были получены данные UDP.
Однако вы можете использовать connect()
для сокета UDP в качестве опции.В этом случае вы можете использовать send()/recv()
на сокете UDP для отправки данных на адрес, указанный в connect()
, и для получения данных только с адреса.(connect()
на сокете UDP просто устанавливает адрес однорангового узла по умолчанию, и вы можете вызывать connect()
на сокете UDP столько раз, сколько вы хотите, а connect()
на сокете UDP, конечно, не выполняет никакого установления связи для соединения.)
Надеюсь, это поможет.