Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions work/K3320/Скворцов_Иван/lab6/task1/client.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import socket

HOST = 'localhost'
PORT = 4321

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, server')
data = s.recv(1024)

print('Received from server:', data.decode())
15 changes: 15 additions & 0 deletions work/K3320/Скворцов_Иван/lab6/task1/server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import socket

HOST = 'localhost'
PORT = 4321

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
print('Server is listening...')
conn, addr = s.accept()
with conn:
print('Connected by', addr)
data = conn.recv(1024)
print('Received from client:', data.decode())
conn.sendall(b'Hello, client')
17 changes: 17 additions & 0 deletions work/K3320/Скворцов_Иван/lab6/task2/client.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import socket

HOST = 'localhost'
PORT = 23456

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
print("Choose operation:")
print("1 - Pythagorean theorem")
choice = input("Enter choice: ")

if choice == '1':
a = input("Enter a: ")
b = input("Enter b: ")
s.sendall(f"{choice} {a} {b}".encode())
result = s.recv(1024).decode()
print("Result:", result)
18 changes: 18 additions & 0 deletions work/K3320/Скворцов_Иван/lab6/task2/server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import socket
import math

HOST = 'localhost'
PORT = 23456

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
print('Server listening for math operations...')
conn, addr = s.accept()
with conn:
print('Connected by', addr)
data = conn.recv(1024).decode().split()
choice, a, b = data
if choice == '1':
result = math.sqrt(float(a)**2 + float(b)**2)
conn.sendall(str(result).encode())
9 changes: 9 additions & 0 deletions work/K3320/Скворцов_Иван/lab6/task3/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<title>Simple HTTP Server</title>
</head>
<body>
<h1>Hello from Python HTTP Server!</h1>
</body>
</html>
23 changes: 23 additions & 0 deletions work/K3320/Скворцов_Иван/lab6/task3/server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import socket

HOST = 'localhost'
PORT = 8080

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen(1)
print('HTTP Server running...')
conn, addr = s.accept()
with conn:
request = conn.recv(1024)
print('Request received:')
print(request.decode())

with open("index.html", "r") as f:
response_body = f.read()

response = 'HTTP/1.1 200 OK\r\n'
response += 'Content-Type: text/html\r\n\r\n'
response += response_body

conn.sendall(response.encode())
23 changes: 23 additions & 0 deletions work/K3320/Скворцов_Иван/lab6/task4/client.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import socket
import threading

def receive_messages(sock):
while True:
try:
msg = sock.recv(1024).decode()
print(msg)
except:
break

HOST = 'localhost'
PORT = 56789

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((HOST, PORT))

thread = threading.Thread(target=receive_messages, args=(client,))
thread.start()

while True:
msg = input()
client.send(msg.encode())
40 changes: 40 additions & 0 deletions work/K3320/Скворцов_Иван/lab6/task4/server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import socket
import threading

clients = []

def broadcast(message, conn):
for client in clients:
if client != conn:
try:
client.send(message)
except:
client.close()
clients.remove(client)

def handle_client(conn, addr):
print(f"New connection from {addr}")
clients.append(conn)
while True:
try:
msg = conn.recv(1024)
if not msg:
break
broadcast(msg, conn)
except:
clients.remove(conn)
conn.close()
break

HOST = 'localhost'
PORT = 56789

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen()
print("Chat server started...")

while True:
conn, addr = server.accept()
thread = threading.Thread(target=handle_client, args=(conn, addr))
thread.start()