Только что созданный socket не указал адрес до вашего входа bind()
, listen()
, или connect()
it.
Если вы хотите connect()
или listen()
на этом сокете, вам необязательно сначала связываться с адресом и портом; один будет автоматически назначен. Однако, если вы пытаетесь запустить сервер, к которому будут подключаться другие, вы, вероятно, захотите сначала указать bind()
на известный адрес и порт. Иногда вы хотите подключиться к определенному адресу и порту, и здесь вы также должны сначала указать bind()
.
Если вы хотите найти адрес, к которому привязан существующий сокет, используйте getsockname()
.
Пожалуйста, прочитайте 'man socket'. – alk
Опять такой случай, когда вопросник, похоже, решил, что это может быть меньше усилий, позволяя другим сказать ему/ей ответ на то, что он/она хочет знать, а затем делать собственные исследования. Предположение вопроса просто неверно, из чего можно сделать вывод, что никаких предварительных исследований не было сделано вообще. – alk
@alk Какой смысл в этом посте, кроме как запросить у вас очки? Достаточно людей ответили на вопрос и не против, я думаю, это означает, что вы просто «тот парень» ... – user1166981