Top.Mail.Ru

Реализация клиент-серверного приложения на Python с использованием модуля socket

Реализация клиент-серверного приложения на Python с использованием модуля socket

Вот пример реализации клиент-серверного взаимодействия на Python с использованием модуля socket. Сервер будет определять четность числа, а клиент будет отправлять число, равное количеству символов в строке.

Сервер (server.php)

import socket

def handle_client(client_socket):
    try:
        # Получаем данные от клиента
        number = int(client_socket.recv(1024).decode())
        # Определяем четность числа
        response = "even" if number % 2 == 0 else "odd"
        # Отправляем ответ клиенту
        client_socket.send(response.encode())
    except ValueError:
        client_socket.send("Invalid input".encode())
    finally:
        client_socket.close()

def main():
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind(('0.0.0.0', 9999))
    server.listen(5)
    print("Server listening on port 9999")

    while True:
        client_socket, addr = server.accept()
        print(f"Accepted connection from {addr}")
        handle_client(client_socket)

if __name__ == "__main__":
    main()

 

Клиент (client.py)

import socket

def main():
    server_address = ('127.0.0.1', 9999)
    
    # Ввод строки от пользователя
    user_input = input("Enter a string: ")
    length = len(user_input)
    
    # Создаем сокет и подключаемся к серверу
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect(server_address)
    
    try:
        # Отправляем длину строки на сервер
        client.send(str(length).encode())
        
        # Получаем ответ от сервера
        response = client.recv(1024).decode()
        print(f"Server response: {response}")
    finally:
        client.close()

if __name__ == "__main__":
    main()

 

Сервер прослушивает входящие соединения на порту 9999.

Клиент запрашивает у пользователя строку, считает количество символов в строке и отправляет это число на сервер.

Сервер получает число, определяет, четное оно или нечетное, и отправляет соответствующий ответ клиенту.

Клиент выводит ответ сервера на экран.

Автор:

107

Читайте также

0 комментариев