[This article is from the Sky Cloud-owned blog Park]
Goal: To achieve the client and server socket communication, message transmission.
Client
Client code:
fromSocketImportSocket,af_inet,sock_stream#IP address of the serverSERVER_IP ='127.0.0.1'#port number of the service-side socket bindingServer_port = 20000if __name__=='__main__': whiletrue:str_msg= Input ("Please enter a message to send:") ifStr_msg! ="": Bytes_msg= Bytes (str_msg, encoding ="GBK") Client=socket (Af_inet,sock_stream) Client.connect ((Server_ip,server_port)) Client.send (bytes_msg) Print(Str (CLIENT.RECV (8192), encoding="GBK") ) Client.close ()
The client (Mac system) is running:
Service side
Service-Side code:
fromSocketserverImportBaserequesthandler, TCPServer#Specifies the list of client IPs that receive messagesTarget_clients = ["10.235.0.109"]classEchohandler (baserequesthandler):defhandle (self): forTarget_clientinchtarget_clients:ifTarget_clientinchself.client_address:Print('Got Connection from', self.client_address) msg= Self.request.recv (8192) if notmsg: Breakret_msg= Bytes ("Auto Reply: The message has been received! ", encoding ="GBK") self.request.send (ret_msg)Print(STR (msg, encoding ="GBK")) Breakif __name__=='__main__': fromThreadingImportThread nworkers= 16#bind socket server IP and port numberserv = TCPServer (("', 20000), Echohandler) forNinchRange (nworkers): t= Thread (target=serv.serve_forever) T.daemon=True T.start () serv.serve_forever ()
The server side (Windows system) is running, note to set the CMD active page code to 936 (Chcp 936) to display the Chinese, set the Cmd property in the font as a bitmap font:
Reference: Python3-cookbook 11.2 Creating a TCP Server
Python socket programming client and server communication