41 lines
1.4 KiB
Python
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() |