3 способа написать сервер с Python

Оглавление:

3 способа написать сервер с Python
3 способа написать сервер с Python

Видео: 3 способа написать сервер с Python

Видео: 3 способа написать сервер с Python
Видео: Microsoft Outlook. Весь функционал за 25 минут 2024, Апрель
Anonim

Создание сервера с нуля - большая задача. Однако это может значительно улучшить ваши навыки программирования и позволить вам изменить его в соответствии с вашими потребностями. В этом руководстве будет использоваться Python и программирование низкоуровневых сокетов для создания сервера, чтобы клиенты могли общаться друг с другом. Это также будет охватывать процесс только в окнах. Некоторая информация будет дана в инструкциях, но если вам просто нужен код, он представлен на рисунках. (Примечание: представленные здесь инструкции - это только основы).

Шаги

Метод 1 из 3: установка Python

Напишите сервер с Python, шаг 1
Напишите сервер с Python, шаг 1

Шаг 1. Загрузите Python

Перейдите на главный сайт Python и загрузите Python 2.7.10. После загрузки выполните шаги установщика python с настройками по умолчанию. Эта ссылка находится здесь

Напишите сервер с Python, шаг 2
Напишите сервер с Python, шаг 2

Шаг 2. Запустите IDLE (графический интерфейс Python)

Зайдите в папку Python 2.7 и запустите IDLE (Python GUI), теперь python должен быть в вашем стартовом меню, где находится IDLE.

Напишите сервер с Python, шаг 3
Напишите сервер с Python, шаг 3

Шаг 3. Создайте новый файл

Перейдите в раздел «Файл» в верхнем левом углу открывшегося окна и выберите «Новый файл». У вас должно быть открыто пустое окно с заголовком «Без названия».

Метод 2 из 3: создание сервера

Напишите сервер с Python, шаг 4
Напишите сервер с Python, шаг 4

Шаг 1. Импортируйте необходимые модули

Для этого кода необходимы два модуля: socket и threading. Это можно сделать, набрав в первой строке «from socket import *» и в следующей строке «import threading».

Напишите сервер с Python, шаг 5
Напишите сервер с Python, шаг 5

Шаг 2. Создайте новую тему

Это позволит сопоставить 2 клиента друг с другом. Потоки - это процессы, которые могут выполняться во время работы основной программы. Печатайте в точности так, как показано на рисунке. Это настроит переменные в потоке, чтобы их можно было вызывать позже.

Написать сервер с Python Шаг 6
Написать сервер с Python Шаг 6

Шаг 3. Создайте процесс потока

Чтобы клиенты могли общаться напрямую, вам необходимо отправлять друг другу информацию, которая включает их IP-адреса и порт, который они используют. Для этого вы должны создать объект сокета, что можно сделать с помощью «variableName = socket (AF_NET, SOCK_DGRAM)». Это создаст объект сокета, который использует протокол UDP. Затем привяжите сокет к вашему IP-адресу с определенным номером порта с помощью «roomSocket.bind (('', self.port))». Пустая область обозначает IP-адрес вашего собственного компьютера в вашей локальной сети, а self.port назначает номер порта, который включается при вызове этого потока. Последнее, что вам нужно сделать с этим сокетом, - это посылать через него информацию. Поскольку это UDP-сокет, вам просто необходимо знать IP-адрес и порт компьютера, на который вы отправляете информацию, синтаксис для отправки - «socketName.sendto (IP, порт)»

Напишите сервер с Python. Шаг 7
Напишите сервер с Python. Шаг 7

Шаг 4. Создайте глобальные переменные

Для этого шага вам нужно будет определить несколько переменных, включая список пользователей, номера портов, количество клиентов, клиентов для потока и идентификатор комнаты. Вам также потребуется создать сокет, чтобы ваш сервер мог взаимодействовать с Интернетом. Это делается путем создания нового объекта сокета и привязки его к вашему IP-адресу с определенным номером порта. (Номер порта может быть любым, но обычно он высокий, чтобы не использовать его другим процессом или использовать зарезервированные номера портов.)

Написать сервер с Python Шаг 8
Написать сервер с Python Шаг 8

Шаг 5. Создайте основной серверный процесс

Это примет адрес клиента, а также запустит ранее созданный поток. Это включает ожидание получения данных из буфера, получение адреса клиента и сохранение его для использования в потоке. Способ получить информацию из вашего сокета - это вызвать «socketName.recvfrom (1024)», число здесь - это просто количество байтов, которые читаются за раз. В этом примере мы сохраняем его в переменной с именем userAddr, и как только это произойдет, вы можете сохранить этот адрес в списке, который был создан на шаге 4. Оператор if создаст поток комнаты, если два человека соединятся, и только создаст комнату когда происходят два разных соединения.

Напишите сервер с Python. Шаг 9
Напишите сервер с Python. Шаг 9

Шаг 6. Сохраните вашу работу

Это должно быть сделано в каталоге, к которому легко добраться, чтобы к нему можно было легко получить доступ для тестирования.

Метод 3 из 3: Тестирование

Напишите сервер с Python, шаг 10
Напишите сервер с Python, шаг 10

Шаг 1. Создайте тестового клиента

Это очень простой клиент, который будет обрабатывать только то, отправил ли сервер информацию другого клиента текущему клиенту. Обратите внимание, что в отличие от кода сервера, этот код требует имени сервера. Если вы запускаете все это на одном компьютере, имя сервера должно совпадать с именем вашего ПК. Вы можете узнать имя своего компьютера, щелкнув правой кнопкой мыши «Мой компьютер» и выбрав «Свойства».

Напишите сервер с Python. Шаг 11
Напишите сервер с Python. Шаг 11

Шаг 2. Сохраните вашу работу

Он должен находиться в том же каталоге, что и код сервера.

Напишите сервер с Python. Шаг 12
Напишите сервер с Python. Шаг 12

Шаг 3. Откройте три разных командных окна

Перейдите в меню «Пуск» и в строке поиска введите «cmd» и нажмите «Ввод». Сделайте это трижды. Окна должны выглядеть так.

Напишите сервер с Python, шаг 13
Напишите сервер с Python, шаг 13

Шаг 4. Запускаем программы

Вам нужно будет ввести точный путь при использовании командного окна. Вам нужно будет сначала запустить код сервера в одном командном окне, а затем тестовый клиентский код в двух других. Если все прошло успешно, вы получите что-то эти сообщения в своем окне.

Предупреждения

  • Эта программа будет работать только при ее запуске и тестировании клиентов в той же локальной сети.
  • Python 2.7.10 устарел, и его поддержка приближается к концу. Чтобы продолжить создание хороших серверов, рекомендуется вместо них установить последнюю версию Python 3.

Рекомендуемые: