Создание сервера с нуля - большая задача. Однако это может значительно улучшить ваши навыки программирования и позволить вам изменить его в соответствии с вашими потребностями. В этом руководстве будет использоваться Python и программирование низкоуровневых сокетов для создания сервера, чтобы клиенты могли общаться друг с другом. Это также будет охватывать процесс только в окнах. Некоторая информация будет дана в инструкциях, но если вам просто нужен код, он представлен на рисунках. (Примечание: представленные здесь инструкции - это только основы).
Шаги
Метод 1 из 3: установка Python
Шаг 1. Загрузите Python
Перейдите на главный сайт Python и загрузите Python 2.7.10. После загрузки выполните шаги установщика python с настройками по умолчанию. Эта ссылка находится здесь
Шаг 2. Запустите IDLE (графический интерфейс Python)
Зайдите в папку Python 2.7 и запустите IDLE (Python GUI), теперь python должен быть в вашем стартовом меню, где находится IDLE.
Шаг 3. Создайте новый файл
Перейдите в раздел «Файл» в верхнем левом углу открывшегося окна и выберите «Новый файл». У вас должно быть открыто пустое окно с заголовком «Без названия».
Метод 2 из 3: создание сервера
Шаг 1. Импортируйте необходимые модули
Для этого кода необходимы два модуля: socket и threading. Это можно сделать, набрав в первой строке «from socket import *» и в следующей строке «import threading».
Шаг 2. Создайте новую тему
Это позволит сопоставить 2 клиента друг с другом. Потоки - это процессы, которые могут выполняться во время работы основной программы. Печатайте в точности так, как показано на рисунке. Это настроит переменные в потоке, чтобы их можно было вызывать позже.
Шаг 3. Создайте процесс потока
Чтобы клиенты могли общаться напрямую, вам необходимо отправлять друг другу информацию, которая включает их IP-адреса и порт, который они используют. Для этого вы должны создать объект сокета, что можно сделать с помощью «variableName = socket (AF_NET, SOCK_DGRAM)». Это создаст объект сокета, который использует протокол UDP. Затем привяжите сокет к вашему IP-адресу с определенным номером порта с помощью «roomSocket.bind (('', self.port))». Пустая область обозначает IP-адрес вашего собственного компьютера в вашей локальной сети, а self.port назначает номер порта, который включается при вызове этого потока. Последнее, что вам нужно сделать с этим сокетом, - это посылать через него информацию. Поскольку это UDP-сокет, вам просто необходимо знать IP-адрес и порт компьютера, на который вы отправляете информацию, синтаксис для отправки - «socketName.sendto (IP, порт)»
Шаг 4. Создайте глобальные переменные
Для этого шага вам нужно будет определить несколько переменных, включая список пользователей, номера портов, количество клиентов, клиентов для потока и идентификатор комнаты. Вам также потребуется создать сокет, чтобы ваш сервер мог взаимодействовать с Интернетом. Это делается путем создания нового объекта сокета и привязки его к вашему IP-адресу с определенным номером порта. (Номер порта может быть любым, но обычно он высокий, чтобы не использовать его другим процессом или использовать зарезервированные номера портов.)
Шаг 5. Создайте основной серверный процесс
Это примет адрес клиента, а также запустит ранее созданный поток. Это включает ожидание получения данных из буфера, получение адреса клиента и сохранение его для использования в потоке. Способ получить информацию из вашего сокета - это вызвать «socketName.recvfrom (1024)», число здесь - это просто количество байтов, которые читаются за раз. В этом примере мы сохраняем его в переменной с именем userAddr, и как только это произойдет, вы можете сохранить этот адрес в списке, который был создан на шаге 4. Оператор if создаст поток комнаты, если два человека соединятся, и только создаст комнату когда происходят два разных соединения.
Шаг 6. Сохраните вашу работу
Это должно быть сделано в каталоге, к которому легко добраться, чтобы к нему можно было легко получить доступ для тестирования.
Метод 3 из 3: Тестирование
Шаг 1. Создайте тестового клиента
Это очень простой клиент, который будет обрабатывать только то, отправил ли сервер информацию другого клиента текущему клиенту. Обратите внимание, что в отличие от кода сервера, этот код требует имени сервера. Если вы запускаете все это на одном компьютере, имя сервера должно совпадать с именем вашего ПК. Вы можете узнать имя своего компьютера, щелкнув правой кнопкой мыши «Мой компьютер» и выбрав «Свойства».
Шаг 2. Сохраните вашу работу
Он должен находиться в том же каталоге, что и код сервера.
Шаг 3. Откройте три разных командных окна
Перейдите в меню «Пуск» и в строке поиска введите «cmd» и нажмите «Ввод». Сделайте это трижды. Окна должны выглядеть так.
Шаг 4. Запускаем программы
Вам нужно будет ввести точный путь при использовании командного окна. Вам нужно будет сначала запустить код сервера в одном командном окне, а затем тестовый клиентский код в двух других. Если все прошло успешно, вы получите что-то эти сообщения в своем окне.
Предупреждения
- Эта программа будет работать только при ее запуске и тестировании клиентов в той же локальной сети.
- Python 2.7.10 устарел, и его поддержка приближается к концу. Чтобы продолжить создание хороших серверов, рекомендуется вместо них установить последнюю версию Python 3.