From fe5f874ea4f0d0e480eb8da39b16ca3364fc0c04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D1=8E=D1=80=D0=BD=D0=B8=D0=BD=20=D0=9A=D0=B8=D1=80?= =?UTF-8?q?=D0=B8=D0=BB=D0=BB?= Date: Tue, 13 May 2025 21:45:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B7=D0=B0=D0=B2=D0=B5=D1=80=D1=88=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ README.md | 0 Reqtoken.py | 14 ++++++++++++++ TCP2client.py | 12 ++++++++++++ TCP2server.py | 35 +++++++++++++++++++++++++++++++++++ TCPfakereq.py | 27 +++++++++++++++++++++++++++ TCPreqvyatsu.py | 4 ++++ TCPvyatsu.py | 9 +++++++++ UDP2client.py | 11 +++++++++++ UDP2server.py | 31 +++++++++++++++++++++++++++++++ client.py | 12 ++++++++++++ createrep.py | 22 ++++++++++++++++++++++ server.py | 35 +++++++++++++++++++++++++++++++++++ udpclient.py | 11 +++++++++++ udpserver.py | 31 +++++++++++++++++++++++++++++++ 15 files changed, 256 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 Reqtoken.py create mode 100644 TCP2client.py create mode 100644 TCP2server.py create mode 100644 TCPfakereq.py create mode 100644 TCPreqvyatsu.py create mode 100644 TCPvyatsu.py create mode 100644 UDP2client.py create mode 100644 UDP2server.py create mode 100644 client.py create mode 100644 createrep.py create mode 100644 server.py create mode 100644 udpclient.py create mode 100644 udpserver.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2d19ec7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +venv +.env \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Reqtoken.py b/Reqtoken.py new file mode 100644 index 0000000..ce1469a --- /dev/null +++ b/Reqtoken.py @@ -0,0 +1,14 @@ +import requests +import os +from dotenv import load_dotenv + +load_dotenv() # Загружаем переменные окружения из .env + +TOKEN = os.getenv("GITEA_TOKEN") +if not TOKEN: + raise Exception("Токен не найден в переменных окружения!") + +headers = {"Authorization": f"token {TOKEN}"} +response = requests.get("https://git.vyatsu.ru/api/v1/user", headers=headers) + +print(response.json()) \ No newline at end of file diff --git a/TCP2client.py b/TCP2client.py new file mode 100644 index 0000000..3bab31a --- /dev/null +++ b/TCP2client.py @@ -0,0 +1,12 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('127.0.0.1', 11000)) + +message = input("Введите строку для отправки на сервер: ") +client.sendall(message.encode()) + +data = client.recv(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() \ No newline at end of file diff --git a/TCP2server.py b/TCP2server.py new file mode 100644 index 0000000..3f876ac --- /dev/null +++ b/TCP2server.py @@ -0,0 +1,35 @@ +import socket + +def uppercase_vowels(text): + vowels = 'aeiouаеёиоуыэюя' + result = '' + for char in text: + if char.lower() in vowels: + result += char.upper() + else: + result += char + return result + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind(("0.0.0.0", 11000)) +server.listen(1) +print("TCP сервер запущен на порту 11000") + +while True: + conn, addr = server.accept() + print(f"Подключение от {addr}") + + data = conn.recv(1024) + if not data: + break + + text = data.decode() + transformed = uppercase_vowels(text) + print(f"Получено: {text} | Отправляем: {transformed}") + conn.sendall(transformed.encode()) + + conn.close() + + if text.upper() == 'EXIT': + print("Сервер завершает работу.") + break \ No newline at end of file diff --git a/TCPfakereq.py b/TCPfakereq.py new file mode 100644 index 0000000..29d34d7 --- /dev/null +++ b/TCPfakereq.py @@ -0,0 +1,27 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('vyatsu.ru', 80)) + +request = ( + "GET / HTTP/1.1\r\n" + "Host: vyatsu.ru\r\n" + "User-Agent: python-requests/2.31.0\r\n" + "Accept-Encoding: gzip, deflate\r\n" + "Accept: /\r\n" + "Connection: close\r\n" + "\r\n" +) + +client.sendall(request.encode()) + +response = b"" +while True: + part = client.recv(4096) + if not part: + break + response += part + +print(response.decode(errors='ignore')) # 'ignore' — на случай gzip/некорректных символов + +client.close() \ No newline at end of file diff --git a/TCPreqvyatsu.py b/TCPreqvyatsu.py new file mode 100644 index 0000000..83588ae --- /dev/null +++ b/TCPreqvyatsu.py @@ -0,0 +1,4 @@ +import requests + +response = requests.get("http://vyatsu.ru") +print(response.text[:500]) \ No newline at end of file diff --git a/TCPvyatsu.py b/TCPvyatsu.py new file mode 100644 index 0000000..4c1fa7e --- /dev/null +++ b/TCPvyatsu.py @@ -0,0 +1,9 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('vyatsu.ru', 80)) +request = "GET / HTTP/1.1\r\nHost: vyatsu.ru\r\n\r\n" +client.sendall(request.encode()) +response = client.recv(4096) +print(response.decode()) +client.close() \ No newline at end of file diff --git a/UDP2client.py b/UDP2client.py new file mode 100644 index 0000000..73d6c34 --- /dev/null +++ b/UDP2client.py @@ -0,0 +1,11 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +message = input("Введите строку для отправки на сервер: ") +client.sendto(message.encode(), ('127.0.0.1', 11001)) # Новый порт 10001 + +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() diff --git a/UDP2server.py b/UDP2server.py new file mode 100644 index 0000000..f7170b4 --- /dev/null +++ b/UDP2server.py @@ -0,0 +1,31 @@ +import socket + +def uppercase_vowels(text): + vowels = 'aeiouаеёиоуыэюя' + result = '' + for char in text: + if char.lower() in vowels: + result += char.upper() + else: + result += char + return result + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(("0.0.0.0", 11001)) +print("UDP сервер запущен на порту 11001") + +while True: + data, addr = server.recvfrom(1024) + text = data.decode() + print(f"Получено от {addr}: {text}") + + transformed = uppercase_vowels(text) + print(f"Отправляем: {transformed}") + + server.sendto(transformed.encode(), addr) + + if text.upper() == 'EXIT': + print("Сервер завершает работу.") + break + +server.close() diff --git a/client.py b/client.py new file mode 100644 index 0000000..4024a16 --- /dev/null +++ b/client.py @@ -0,0 +1,12 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('127.0.0.1', 10000)) + +message = input("Введите строку для отправки на сервер: ") +client.sendall(message.encode()) + +data = client.recv(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() \ No newline at end of file diff --git a/createrep.py b/createrep.py new file mode 100644 index 0000000..39bce37 --- /dev/null +++ b/createrep.py @@ -0,0 +1,22 @@ +import requests +import os +from dotenv import load_dotenv + +load_dotenv() + +TOKEN = os.getenv("GITEA_WRITE_TOKEN") + + +headers = {"Authorization": f"token {TOKEN}"} + +data = { + "name": "3weekturka", + "description": "Репозиторий созданный через API", + "private": False, + "auto_init": True +} + +response = requests.post("https://git.vyatsu.ru/api/v1/user/repos", json=data, headers=headers) + +print("Status code:", response.status_code) +print("Text:", response.text) \ No newline at end of file diff --git a/server.py b/server.py new file mode 100644 index 0000000..4cc28dc --- /dev/null +++ b/server.py @@ -0,0 +1,35 @@ +import socket + +def uppercase_vowels(text): + vowels = 'aeiouаеёиоуыэюя' + result = '' + for char in text: + if char.lower() in vowels: + result += char.upper() + else: + result += char + return result + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind(("0.0.0.0", 10000)) +server.listen(1) +print("TCP сервер запущен на порту 10000") + +while True: + conn, addr = server.accept() + print(f"Подключение от {addr}") + + data = conn.recv(1024) + if not data: + break + + text = data.decode() + transformed = uppercase_vowels(text) + print(f"Получено: {text} | Отправляем: {transformed}") + conn.sendall(transformed.encode()) + + conn.close() + + if text.upper() == 'EXIT': + print("Сервер завершает работу.") + break \ No newline at end of file diff --git a/udpclient.py b/udpclient.py new file mode 100644 index 0000000..4fce14e --- /dev/null +++ b/udpclient.py @@ -0,0 +1,11 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + +message = input("Введите строку для отправки на сервер: ") +client.sendto(message.encode(), ('127.0.0.1', 10001)) # Новый порт 10001 + +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") + +client.close() diff --git a/udpserver.py b/udpserver.py new file mode 100644 index 0000000..c598cc9 --- /dev/null +++ b/udpserver.py @@ -0,0 +1,31 @@ +import socket + +def uppercase_vowels(text): + vowels = 'aeiouаеёиоуыэюя' + result = '' + for char in text: + if char.lower() in vowels: + result += char.upper() + else: + result += char + return result + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(("0.0.0.0", 10001)) +print("UDP сервер запущен на порту 10001") + +while True: + data, addr = server.recvfrom(1024) + text = data.decode() + print(f"Получено от {addr}: {text}") + + transformed = uppercase_vowels(text) + print(f"Отправляем: {transformed}") + + server.sendto(transformed.encode(), addr) + + if text.upper() == 'EXIT': + print("Сервер завершает работу.") + break + +server.close()