test/tcp_server.py

41 lines
1.4 KiB
Python

import socket
def run_tcp_server():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(("0.0.0.0", 10000))
server.listen(1)
print("TCP server started on port 10000")
print("Waiting for connections...")
try:
while True:
conn, addr = server.accept()
print(f"Connection from {addr}")
with conn:
while True:
data = conn.recv(1024)
if not data:
break
message = data.decode().strip()
print(f"Received: '{message}'")
if message.upper() == 'EXIT':
conn.sendall(b"Server shutting down...")
print("Received EXIT command, shutting down")
return
modified_message = f"ECHO: {message.upper()}"
conn.sendall(modified_message.encode())
print(f"Sent response: '{modified_message}'")
except KeyboardInterrupt:
print("\nServer stopped by user")
finally:
server.close()
print("Server socket closed")
if __name__ == "__main__":
run_tcp_server()