bind()
запрашивает порт, который не используется, чтобы он мог заявить об этом и стать сервером, в то время как connect()
хочет порт, который уже используется, чтобы он мог подключиться к нему и общаться с сервером.
Как сказал пользователь stark , вам нужно позвонить bind
, если вы хотите указать, какую комбинацию интерфейса / порта использовать, хотя если вы хотите, чтобы следующий вызов связывал ее со случайным доступным номером порта, Вы можете отказаться от bind()
вызова, потому что клиент не обязательно должен иметь фиксированный номер порта.
Можно попросить ядро выбрать определенный порт перед вызовом connect()
, но если я могу спросить - почему вы не хотите, чтобы ядро выделяло исходные порты, насколько я знаю, это не лучшая практика.