#!/usr/bin/env python3"""
Simple socket server that sends a specific binary response on port 1388.
"""importsocketimportloggingimportsys# Set up logginglogging.basicConfig(level=logging.INFO,format='%(asctime)s - %(levelname)s - %(message)s')log=logging.getLogger(__name__)# The binary response to sendBINARY_RESPONSE=b'0%1\x01\x00x\x00\r\x00\x00\x00\x00\x00\x8a\x00\r\x00\x06\x00\r\x00\x00\x00\r\x00\x00\x00\x00\xc7\xc7\xc7\x9b\x80\xeb\x05123456\x00\x03\x00\x00\x00\tcn=d\x00\x10man'PORT=1388defhandle_client(client_socket,client_address):"""Handle a single client connection."""try:log.info(f"Client connected from {client_address}")# Send the binary responseclient_socket.send(BINARY_RESPONSE)log.info(f"Sent {len(BINARY_RESPONSE)} bytes to {client_address}")exceptExceptionase:log.error(f"Error handling client {client_address}: {e}")finally:# Close the client socketclient_socket.close()log.info(f"Connection closed for {client_address}")defrun_server():"""Run the socket server."""# Create a socketserver_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)# Allow socket reuseserver_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)try:# Bind to the portserver_socket.bind(('localhost',PORT))server_socket.listen(5)log.info(f"Server listening on port {PORT}")log.info("Press Ctrl+C to stop the server")whileTrue:try:# Accept a client connectionclient_socket,client_address=server_socket.accept()# Handle the client in the same thread (simple approach)handle_client(client_socket,client_address)exceptKeyboardInterrupt:log.info("Server shutdown requested")breakexceptExceptionase:log.error(f"Error accepting connection: {e}")exceptExceptionase:log.error(f"Error starting server: {e}")sys.exit(1)finally:server_socket.close()log.info("Server socket closed")if__name__=="__main__":run_server()