diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task1/client.py" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task1/client.py"
new file mode 100644
index 000000000..56103b329
--- /dev/null
+++ "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task1/client.py"
@@ -0,0 +1,13 @@
+import socket
+
+def run_client():
+ client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ client_socket.connect(('localhost', 12345))
+
+ client_socket.sendall("Hello, server".encode('utf-8'))
+ print(client_socket.recv(1024).decode('utf-8'))
+
+ client_socket.close()
+
+if __name__ == "__main__":
+ run_client()
diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task1/server.py" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task1/server.py"
new file mode 100644
index 000000000..ead53d78a
--- /dev/null
+++ "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task1/server.py"
@@ -0,0 +1,19 @@
+import socket
+
+def run_server():
+ server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ server_socket.bind(('localhost', 12345))
+ server_socket.listen(1)
+
+ conn, addr = server_socket.accept()
+
+ data = conn.recv(1024).decode('utf-8')
+ if data == "Hello, server":
+ print(data)
+ conn.sendall("Hello, client".encode('utf-8'))
+
+ conn.close()
+ server_socket.close()
+
+if __name__ == "__main__":
+ run_server()
diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task2/client.py" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task2/client.py"
new file mode 100644
index 000000000..b2a410e60
--- /dev/null
+++ "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task2/client.py"
@@ -0,0 +1,19 @@
+import socket
+
+def run_client():
+ base = input("Введите длину основания: ")
+ height = input("Введите высоту: ")
+
+ client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ client_socket.connect(('localhost', 1234))
+
+ message = f"{base} {height}"
+ client_socket.sendall(message.encode('utf-8'))
+
+ result = client_socket.recv(1024).decode('utf-8')
+ print("Площадь:", result)
+
+ client_socket.close()
+
+if __name__ == "__main__":
+ run_client()
diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task2/server.py" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task2/server.py"
new file mode 100644
index 000000000..4f97857cc
--- /dev/null
+++ "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task2/server.py"
@@ -0,0 +1,22 @@
+import socket
+
+def parallelogram_area(base, height):
+ return base * height
+
+def run_server():
+ server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ server_socket.bind(('localhost', 1234))
+ server_socket.listen(1)
+
+ conn, addr = server_socket.accept()
+
+ data = conn.recv(1024).decode('utf-8')
+ base, height = map(float, data.split())
+ area = parallelogram_area(base, height)
+ conn.sendall(str(area).encode('utf-8'))
+
+ conn.close()
+ server_socket.close()
+
+if __name__ == "__main__":
+ run_server()
diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task3/index.html" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task3/index.html"
new file mode 100644
index 000000000..8e6126385
--- /dev/null
+++ "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task3/index.html"
@@ -0,0 +1,39 @@
+
+
+
+ Работа с таблицами
+
+
+
+
+ Список сотрудников
+
+ | Фамилия |
+ Имя |
+ Отчество |
+ Город |
+
+
+ | Пупкин |
+ Василий |
+ Петрович |
+ Москва |
+
+
+
+ | Феофан |
+ Васильевич |
+
+
+ | Шашкин |
+ Сидор |
+ Богданович |
+ Санкт-Петербург |
+
+
+ | Лютикова Аделина Федоровна |
+ Тверь |
+
+
+
+
diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task3/server.py" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task3/server.py"
new file mode 100644
index 000000000..7cd971cf0
--- /dev/null
+++ "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task3/server.py"
@@ -0,0 +1,26 @@
+import socket
+
+def run_server():
+ server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ server_socket.bind(('localhost', 8080))
+ server_socket.listen(1)
+
+ while True:
+ conn, addr = server_socket.accept()
+ request = conn.recv(1024)
+
+ with open("index.html", "r", encoding="utf-8") as f:
+ content = f.read()
+
+ response = (
+ "HTTP/1.1 200 OK\r\n"
+ "Content-Type: text/html; charset=utf-8\r\n"
+ f"Content-Length: {len(content.encode('utf-8'))}\r\n"
+ "\r\n"
+ + content
+ )
+ conn.sendall(response.encode('utf-8'))
+ conn.close()
+
+if __name__ == "__main__":
+ run_server()
diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task4/client.py" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task4/client.py"
new file mode 100644
index 000000000..56ed7b643
--- /dev/null
+++ "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task4/client.py"
@@ -0,0 +1,33 @@
+import socket
+import threading
+
+def receive_messages(client_socket):
+ while True:
+ try:
+ message = client_socket.recv(1024).decode('utf-8')
+ if message == "NICK":
+ client_socket.send(nickname.encode('utf-8'))
+ else:
+ print(message)
+ except:
+ print("Ошибка соединения")
+ client_socket.close()
+ break
+
+def write_messages(client_socket):
+ while True:
+ message = input()
+ if message:
+ client_socket.send(f"{nickname}: {message}".encode('utf-8'))
+
+if __name__ == "__main__":
+ nickname = input("Введите ваше имя: ")
+
+ client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ client_socket.connect(('localhost', 12345))
+
+ receive_thread = threading.Thread(target=receive_messages, args=(client_socket,))
+ receive_thread.start()
+
+ write_thread = threading.Thread(target=write_messages, args=(client_socket,))
+ write_thread.start()
diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task4/server.py" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task4/server.py"
new file mode 100644
index 000000000..a36aa8531
--- /dev/null
+++ "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/task4/server.py"
@@ -0,0 +1,58 @@
+import socket
+import threading
+
+clients = []
+nicknames = []
+
+def broadcast(message, sender_conn):
+ for client in clients:
+ if client != sender_conn:
+ try:
+ client.send(message)
+ except:
+ client.close()
+ remove_client(client)
+
+def remove_client(client):
+ if client in clients:
+ index = clients.index(client)
+ clients.remove(client)
+ nickname = nicknames.pop(index)
+ broadcast(f"{nickname} вышел из чата.".encode('utf-8'), None)
+ print(f"Пользователь {nickname} отключился.")
+
+def handle_client(client):
+ while True:
+ try:
+ message = client.recv(1024)
+ if not message:
+ remove_client(client)
+ break
+ broadcast(message, client)
+ except:
+ remove_client(client)
+ break
+
+def receive_connections():
+ server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ server_socket.bind(('localhost', 12345))
+ server_socket.listen()
+
+ print("Сервер запущен. Ожидание подключений...")
+
+ while True:
+ client, address = server_socket.accept()
+ client.send("NICK".encode('utf-8'))
+ nickname = client.recv(1024).decode('utf-8')
+ nicknames.append(nickname)
+ clients.append(client)
+
+ print(f"Пользователь {nickname} подключился с {address}")
+ broadcast(f"{nickname} вошел в чат.".encode('utf-8'), client)
+ client.send("Подключение установлено. Добро пожаловать в чат!".encode('utf-8'))
+
+ thread = threading.Thread(target=handle_client, args=(client,))
+ thread.start()
+
+if __name__ == "__main__":
+ receive_connections()
diff --git "a/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/\320\221\320\276\321\200\320\270\321\201\320\276\320\262 \320\230\320\263\320\275\320\260\321\202 6.pdf" "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/\320\221\320\276\321\200\320\270\321\201\320\276\320\262 \320\230\320\263\320\275\320\260\321\202 6.pdf"
new file mode 100644
index 000000000..55fc744ac
Binary files /dev/null and "b/works/K3321/\320\221\320\276\321\200\320\270\321\201\320\276\320\262_\320\230\320\263\320\275\320\260\321\202/lab_6/\320\221\320\276\321\200\320\270\321\201\320\276\320\262 \320\230\320\263\320\275\320\260\321\202 6.pdf" differ