From 2a7895f98e0d526865bc31bef4bcd415e51c98ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=91=D0=B0=D1=81=D0=B0=D1=80=D0=B3=D0=B8=D0=BD=D0=B0=20?=
 =?UTF-8?q?=D0=9A=D1=81=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=A0=D0=BE=D0=BC=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BD=D0=B0?= <stud179292@vyatsu.ru>
Date: Fri, 2 May 2025 17:23:36 +0300
Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BD=D0=B5=D1=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore    |  2 ++
 gitea-read.py | 18 ++++++++++++++++++
 gitwrite.py   | 23 +++++++++++++++++++++++
 http-req.py   |  4 ++++
 http-vyt.py   |  9 +++++++++
 tcp-clin.py   |  9 +++++++++
 tcp-serv.py   | 17 +++++++++++++++++
 udp-clin.py   |  7 +++++++
 udp-serv.py   | 13 +++++++++++++
 vyt-req.py    | 19 +++++++++++++++++++
 10 files changed, 121 insertions(+)
 create mode 100644 gitea-read.py
 create mode 100644 gitwrite.py
 create mode 100644 http-req.py
 create mode 100644 http-vyt.py
 create mode 100644 tcp-clin.py
 create mode 100644 tcp-serv.py
 create mode 100644 udp-clin.py
 create mode 100644 udp-serv.py
 create mode 100644 vyt-req.py

diff --git a/.gitignore b/.gitignore
index e69de29..71b98ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,2 @@
+.venv/
+.env
\ No newline at end of file
diff --git a/gitea-read.py b/gitea-read.py
new file mode 100644
index 0000000..4690739
--- /dev/null
+++ b/gitea-read.py
@@ -0,0 +1,18 @@
+import os
+import requests
+from dotenv import load_dotenv
+
+# Загрузка переменных окружения из .env
+load_dotenv()
+
+# Получение токена из переменной окружения
+TOKEN = os.getenv("GITEA_TOKEN")
+
+# Заголовок авторизации
+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/gitwrite.py b/gitwrite.py
new file mode 100644
index 0000000..c076081
--- /dev/null
+++ b/gitwrite.py
@@ -0,0 +1,23 @@
+import os
+import requests
+from dotenv import load_dotenv
+
+load_dotenv()
+
+TOKEN = os.getenv("GITEA_TOKEN_WRITE")
+headers = {
+    "Authorization": f"token {TOKEN}",
+    "Content-Type": "application/json"
+}
+
+repo_data = {
+    "name": "basargina",
+    "description": "создано",
+    "private": False,
+    "auto_init": True
+}
+
+response = requests.post("https://git.vyatsu.ru/api/v1/user/repos", headers=headers, json=repo_data)
+
+print(response.status_code)
+print(response.json())
\ No newline at end of file
diff --git a/http-req.py b/http-req.py
new file mode 100644
index 0000000..83588ae
--- /dev/null
+++ b/http-req.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/http-vyt.py b/http-vyt.py
new file mode 100644
index 0000000..4c1fa7e
--- /dev/null
+++ b/http-vyt.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/tcp-clin.py b/tcp-clin.py
new file mode 100644
index 0000000..79af014
--- /dev/null
+++ b/tcp-clin.py
@@ -0,0 +1,9 @@
+import socket
+
+client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+client.connect(('127.0.0.1', 10000))
+client.sendall(b'hello server')
+data = client.recv(1024)
+client.sendall(b'EXIT')
+print(f"Ответ от сервера: {data.decode()}")
+client.close()
\ No newline at end of file
diff --git a/tcp-serv.py b/tcp-serv.py
new file mode 100644
index 0000000..745c37e
--- /dev/null
+++ b/tcp-serv.py
@@ -0,0 +1,17 @@
+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
\ No newline at end of file
diff --git a/udp-clin.py b/udp-clin.py
new file mode 100644
index 0000000..32806d6
--- /dev/null
+++ b/udp-clin.py
@@ -0,0 +1,7 @@
+import socket
+
+client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+client.sendto(b'hello server', ('127.0.0.1', 20019))
+data, _ = client.recvfrom(1024)
+print(f"Ответ от сервера: {data.decode()}")
+client.close()
\ No newline at end of file
diff --git a/udp-serv.py b/udp-serv.py
new file mode 100644
index 0000000..b5ae034
--- /dev/null
+++ b/udp-serv.py
@@ -0,0 +1,13 @@
+import socket
+
+server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+server.bind(('0.0.0.0', 20019))
+print("UDP сервер запущен")
+
+while True:
+    data, addr = server.recvfrom(1024)
+    decoded = data.decode()
+    print(f"Сообщение от {addr}: {decoded}")
+    
+    response = ' '.join(decoded.upper())  # Добавляем пробелы между символами
+    server.sendto(response.encode(), addr)
diff --git a/vyt-req.py b/vyt-req.py
new file mode 100644
index 0000000..5f2110d
--- /dev/null
+++ b/vyt-req.py
@@ -0,0 +1,19 @@
+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, br\r\n"
+    "Accept: */*\r\n"
+    "Connection: keep-alive\r\n"
+    "\r\n"
+)
+
+client.sendall(request.encode())
+response = client.recv(4096)
+print(response.decode(errors="replace"))
+client.close()
\ No newline at end of file