From 0de4a40bc130d31a33b99adc1f53347442607315 Mon Sep 17 00:00:00 2001 From: Danila Date: Wed, 6 May 2026 14:56:02 +0300 Subject: [PATCH] TCP and UDP clients and servers --- .gitignore | 3 +++ README.md | 0 tcp_client.py | 8 ++++++++ tcp_server.py | 31 +++++++++++++++++++++++++++++++ udp_client.py | 10 ++++++++++ udp_server.py | 15 +++++++++++++++ 6 files changed, 67 insertions(+) create mode 100644 .gitignore create mode 100644 README.md 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/.gitignore b/.gitignore new file mode 100644 index 0000000..de734a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.venv/ +__pycache__/ +.env diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/tcp_client.py b/tcp_client.py new file mode 100644 index 0000000..17c945e --- /dev/null +++ b/tcp_client.py @@ -0,0 +1,8 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('127.0.0.1', 10000)) +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..3ca873f --- /dev/null +++ b/tcp_server.py @@ -0,0 +1,31 @@ +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: + conn.close() + break + + conn.sendall(data.upper()) + + conn.close() + + if data.upper() == b'EXIT': + print("Завершение работы сервера...") + break + + +server.close() diff --git a/udp_client.py b/udp_client.py new file mode 100644 index 0000000..c83e5b8 --- /dev/null +++ b/udp_client.py @@ -0,0 +1,10 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +message = b'hello server' +client.sendto(message, ('127.0.0.1', 15000)) + +data, server_addr = 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..3263a89 --- /dev/null +++ b/udp_server.py @@ -0,0 +1,15 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(('0.0.0.0', 15000)) +print("UDP сервер запущен на порту 15000") + +while True: + data, addr = server.recvfrom(1024) + message = data.decode() + print(f"Получено от {addr}: {message}") + + modified_message = f"ECHO: {message.upper()} (len: {len(message)})" + + + server.sendto(modified_message.encode(), addr)