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