From 7eae67847a586b9b63c7ccb7077e3f9cb319d7fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= Date: Fri, 4 Apr 2025 18:58:54 +0300 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20TCP=20and=20UD?= =?UTF-8?q?P?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tcp_client.py | 10 ++++++++++ tcp_server.py | 20 ++++++++++++++++++++ udp_client.py | 16 ++++++++++++++++ udp_server.py | 26 ++++++++++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 tcp_client.py create mode 100644 tcp_server.py create mode 100644 udp_client.py create mode 100644 udp_server.py diff --git a/tcp_client.py b/tcp_client.py new file mode 100644 index 0000000..63c49e5 --- /dev/null +++ b/tcp_client.py @@ -0,0 +1,10 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('127.0.0.1', 10000)) +# Отправляем сообщение 'EXIT' для завершения работы сервера +client.sendall(b'EXIT') + +data = client.recv(1024) +print(f"Ответ от сервера: {data.decode()}") +client.close() diff --git a/tcp_server.py b/tcp_server.py new file mode 100644 index 0000000..5b50061 --- /dev/null +++ b/tcp_server.py @@ -0,0 +1,20 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind(("0.0.0.0", 10000)) +server.listen(1) +print("TCP сервер запущен") + +while True: + conn, addr = server.accept() + print(f"Подключение от {addr}") + + data = conn.recv(1024) + if not data: + break + conn.sendall(data.upper()) + + conn.close() + + if data.upper() == b'EXIT': + break diff --git a/udp_client.py b/udp_client.py new file mode 100644 index 0000000..b73aa2a --- /dev/null +++ b/udp_client.py @@ -0,0 +1,16 @@ +import socket + +# Новый порт для UDP клиента +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +# Сообщение, которое будет отправлено на сервер +message = b'hello server' + +# Отправляем сообщение серверу +client.sendto(message, ('127.0.0.1', 20001)) # Новый порт 20001 + +# Получаем и выводим модифицированные данные от сервера +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() diff --git a/udp_server.py b/udp_server.py new file mode 100644 index 0000000..3cbe9b6 --- /dev/null +++ b/udp_server.py @@ -0,0 +1,26 @@ +import socket + +# Новый порт для UDP-сервера +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(('0.0.0.0', 20001)) # Новый порт 20001 +print("UDP сервер запущен на порту 20001") + +while True: + # Получаем данные от клиента + data, addr = server.recvfrom(1024) + if not data: + continue + + print(f"Получено сообщение от {addr}: {data.decode()}") + + # Модифицируем данные: преобразуем в верхний регистр и добавляем префикс + modified_data = b"Modified: " + data.upper() + + # Отправляем модифицированные данные обратно клиенту + server.sendto(modified_data, addr) + + # Дополнительное условие для завершения работы + if data.upper() == b'EXIT': + break + +server.close()