From 41612009a01decc74c7d00da637762ee65f54c12 Mon Sep 17 00:00:00 2001 From: stud203998 Date: Mon, 13 Apr 2026 21:08:14 +0300 Subject: [PATCH] Work is done, 2 zadanie gotovo --- .gitignore | 5 +++++ GitAPI.py | 6 ++++++ GitAPIWrite.py | 21 +++++++++++++++++++++ http_request.py | 4 ++++ http_socket.py | 17 +++++++++++++++++ tcp_client.py | 8 ++++++++ tcp_server.py | 25 +++++++++++++++++++++++++ udp_client.py | 7 +++++++ udp_server.py | 10 ++++++++++ 9 files changed, 103 insertions(+) create mode 100644 GitAPI.py create mode 100644 GitAPIWrite.py create mode 100644 http_request.py create mode 100644 http_socket.py 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 index e69de29..230f964 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,5 @@ +venv/ +__pycache__/ +*.pyc +.env +.vscode/ \ No newline at end of file diff --git a/GitAPI.py b/GitAPI.py new file mode 100644 index 0000000..47b8afa --- /dev/null +++ b/GitAPI.py @@ -0,0 +1,6 @@ +import requests + +TOKEN = "27f359e8d73918297d6276b4a0c11237f38ac71e" +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/GitAPIWrite.py b/GitAPIWrite.py new file mode 100644 index 0000000..a4bf48e --- /dev/null +++ b/GitAPIWrite.py @@ -0,0 +1,21 @@ +import os +import requests +from dotenv import load_dotenv + +load_dotenv() +TOKEN = os.getenv("GITEA_WRITE_TOKEN") + +headers = {"Authorization": f"token {TOKEN}", "Content-Type": "application/json"} +repo_name = "lab3-test-repo-ivanov" # Замените на свою фамилию + +data = { + "name": repo_name, + "description": "Создано через API для лабораторной работы 3", + "private": True +} + +response = requests.post("https://git.vyatsu.ru/api/v1/user/repos", headers=headers, json=data) +if response.status_code == 201: + print(f"Репозиторий '{repo_name}' успешно создан!") +else: + print(f"Ошибка: {response.json()}") \ No newline at end of file diff --git a/http_request.py b/http_request.py new file mode 100644 index 0000000..83588ae --- /dev/null +++ b/http_request.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_socket.py b/http_socket.py new file mode 100644 index 0000000..03af6be --- /dev/null +++ b/http_socket.py @@ -0,0 +1,17 @@ +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: keep-alive\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_client.py b/tcp_client.py new file mode 100644 index 0000000..b7a25ea --- /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() \ No newline at end of file diff --git a/tcp_server.py b/tcp_server.py new file mode 100644 index 0000000..95d87e9 --- /dev/null +++ b/tcp_server.py @@ -0,0 +1,25 @@ +import socket + +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: + conn.close() + continue + + print(f"Получено: {data.decode()}") + response = data.upper() + conn.sendall(response) + conn.close() + + if data.upper() == b'EXIT': + print("Получена команда EXIT, сервер завершает работу.") + break + +server.close() \ No newline at end of file diff --git a/udp_client.py b/udp_client.py new file mode 100644 index 0000000..db897fb --- /dev/null +++ b/udp_client.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', 10102)) +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode()}") +client.close() \ No newline at end of file diff --git a/udp_server.py b/udp_server.py new file mode 100644 index 0000000..755a130 --- /dev/null +++ b/udp_server.py @@ -0,0 +1,10 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(('0.0.0.0', 10102)) +print("UDP сервер запущен") + +while True: + data, addr = server.recvfrom(1024) + print(f"Сообщение от {addr}: {data.decode()}") + server.sendto(data[::-1], addr) \ No newline at end of file