Я начинаю с задания по сетевому программированию, которое у меня есть. Инструкции следующие:
а. Создайте n
клиентов и серверы TCP (вместе клиент и сервер на
тот же хост формирует одноранговый узел), где n
является входным параметром.
б. Назначьте имя виртуального хоста для каждого узла, например, Peer1, Peer2 и т. Д.
с. Создайте дополнительный сервер, который будет действовать как центральный сервер для
все сверстники.
д. Пусть все n
одноранговые узлы подключаются к центральному серверу, отправляя ему
Сообщение «Привет».
е. Каждую секунду центральный сервер посылает случайный выбор
n/2
пиров имя другого, случайного пира.
е. Узлы, с которыми связался центральный сервер
подключиться к пиру, который им дали, и отправить его случайным образом
номер, который отражается обратно.
например. для 2 пиров:
Peer1: отправка «Привет» в Central.
Central: получено «Hello» от Peer 1.
Peer2: отправка «Привет» в Central.
Central: получено «Hello» от Peer 2.
Central: отправка «Peer2» на Peer1.
Peer1: получил «Peer2» от Центрального.
Peer1: отправка «5890245»
Peer2.
Peer2: получено «5890245» от Peer1.
Peer2: отправка «5890245»
Peer1.
Peer1: получено «5890245» от Peer2.
. , .
Меня смущает инструкция " virtual hostname " на шаге b. Что это значит?
Для сервера в Python я могу сделать это:
hostname = #????
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mySocket.bind((hostname, 50008))
mySocket.listen(1)
Если hostname
равен 'localhost' или '', он будет прослушивать только соединения с этого компьютера. Но если я попытаюсь дать имя типа «Peer1», я получу:
socket.gaierror: [Errno 8] указано ни имя, ни имя сервера, либо неизвестно
предположительно, потому что он пытается подключиться к хосту с именем "Peer1", который не существует.
Так как я могу отправить одному из моих пиров «имя» другого и подключить его, если они все на моей машине? Я думаю, что мне нужно было бы просто дать им номер порта и сделать так, чтобы все они были "localhost", но, похоже, это не то, о чем просят.
Если у вас есть независимый от языка ответ или ответ, зависящий от другого языка, это будет так же цениться! Спасибо!