commit fe5f874ea4f0d0e480eb8da39b16ca3364fc0c04 Author: Тюрнин Кирилл Date: Tue May 13 21:45:33 2025 +0300 завершил задание 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()