From ec597874e1e84f0f93d1f9edf20f40c706d8e5a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD=20=D0=9A=D1=83=D0=B7=D0=BD=D0=B5?= =?UTF-8?q?=D1=86=D0=BE=D0=B2?= Date: Sat, 26 Apr 2025 14:18:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D0=BA=D0=B8=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D1=8B.=20=D0=A1=D0=BA?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D1=8B=20=D1=81=20Wireshark'=D0=B0=20-=20?= =?UTF-8?q?=D0=B2=20=D0=BE=D1=82=D1=87=D1=91=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- http_socket.py | 10 ++++++++++ tcp_client.py | 10 ++++++++++ tcp_server.py | 22 ++++++++++++++++++++++ token_read.py | 13 +++++++++++++ token_write_repo.py | 16 ++++++++++++++++ udp_client.py | 8 ++++++++ udp_server.py | 12 ++++++++++++ zadanie2_http_request.py | 4 ++++ zadanie3_http_socket.py | 17 +++++++++++++++++ 9 files changed, 112 insertions(+) create mode 100644 http_socket.py create mode 100644 tcp_client.py create mode 100644 tcp_server.py create mode 100644 token_read.py create mode 100644 token_write_repo.py create mode 100644 udp_client.py create mode 100644 udp_server.py create mode 100644 zadanie2_http_request.py create mode 100644 zadanie3_http_socket.py diff --git a/http_socket.py b/http_socket.py new file mode 100644 index 0000000..9f49139 --- /dev/null +++ b/http_socket.py @@ -0,0 +1,10 @@ + +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() diff --git a/tcp_client.py b/tcp_client.py new file mode 100644 index 0000000..735ace4 --- /dev/null +++ b/tcp_client.py @@ -0,0 +1,10 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect(('127.0.0.1', 12000)) # порт 12000 +client.sendall(b'hello server') +data = client.recv(1024) +print(f"Ответ от сервера: {data.decode(errors='ignore')}") +client.close() + + diff --git a/tcp_server.py b/tcp_server.py new file mode 100644 index 0000000..98febac --- /dev/null +++ b/tcp_server.py @@ -0,0 +1,22 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind(("0.0.0.0", 12000)) +server.listen(1) +print("TCP сервер запущен на порту 12000") + +while True: + conn, addr = server.accept() + print(f"Подключение от {addr}") + + data = conn.recv(1024) + if not data: + break + + conn.sendall(b'#' + b'#'.join(bytes([b]) for b in data)) + + conn.close() + + if data.upper() == b'EXIT': + break + diff --git a/token_read.py b/token_read.py new file mode 100644 index 0000000..eee9f14 --- /dev/null +++ b/token_read.py @@ -0,0 +1,13 @@ + + + +import os +from dotenv import load_dotenv +import requests + +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()) diff --git a/token_write_repo.py b/token_write_repo.py new file mode 100644 index 0000000..b53d6d4 --- /dev/null +++ b/token_write_repo.py @@ -0,0 +1,16 @@ +import requests +from dotenv import load_dotenv +import os + +load_dotenv() +TOKEN = os.getenv("GITEA_TOKEN_WRITE") +headers = {"Authorization": f"token {TOKEN}"} + +data = { + "name": "repoZadanie4_rabota_s_Gitea_3laba", + "private": False, + "description": "Репозиторий, созданный с помощью API" +} + +response = requests.post("https://git.vyatsu.ru/api/v1/user/repos", headers=headers, json=data) +print(response.json()) diff --git a/udp_client.py b/udp_client.py new file mode 100644 index 0000000..642d6f9 --- /dev/null +++ b/udp_client.py @@ -0,0 +1,8 @@ +import socket + +client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +client.sendto(b'hello server', ('127.0.0.1', 13001)) +data, _ = client.recvfrom(1024) +print(f"Ответ от сервера: {data.decode(errors='ignore')}") +client.close() + diff --git a/udp_server.py b/udp_server.py new file mode 100644 index 0000000..2310ef8 --- /dev/null +++ b/udp_server.py @@ -0,0 +1,12 @@ +import socket + +server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +server.bind(('0.0.0.0', 13001)) # уникальный порт +print("UDP сервер запущен на порту 13001") + +while True: + data, addr = server.recvfrom(1024) + print(f"Сообщение от {addr}: {data.decode()}") + + server.sendto(b'#' + b'#'.join(bytes([b]) for b in data), addr) + diff --git a/zadanie2_http_request.py b/zadanie2_http_request.py new file mode 100644 index 0000000..7ebf2a0 --- /dev/null +++ b/zadanie2_http_request.py @@ -0,0 +1,4 @@ +import requests + +response = requests.get("http://vyatsu.ru") +print(response.text[:500]) diff --git a/zadanie3_http_socket.py b/zadanie3_http_socket.py new file mode 100644 index 0000000..8dacebd --- /dev/null +++ b/zadanie3_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(errors="ignore")) +client.close()