# _*_ coding: utf-8 _*_ """ Socketç¼ç¨ """ import sys import socket def server_func(port): """ æå¡ç«¯ """ # 1. å建socket对象 server = socket.socket() # 2. ç»å®ipåç«¯å£ server.bind(("127.0.0.1", port)) # 3. ç嬿¯å¦æå®¢æ·ç«¯è¿æ¥ server.listen(10) print("æå¡ç«¯å·²ç»å¯å¨%s端å£......" % port) # 4. æ¥æ¶å®¢æ·ç«¯è¿æ¥ sock_obj, address = server.accept() sock_obj.settimeout(3) print("客æ·ç«¯ï¼%sï¼è¶ æ¶æ¶é´ï¼%s" % (address, sock_obj.gettimeout())) while True: try: # 5. æ¥æ¶å®¢æ·ç«¯åéçæ¶æ¯ recv_data = sock_obj.recv(1024).decode("utf-8") print("客æ·ç«¯ç«¯ -> æå¡ç«¯: %s" % recv_data) if recv_data == "quit": break # 6. ç»å®¢æ·ç«¯å夿¶æ¯ send_data = "received[%s]" % recv_data sock_obj.send(send_data.encode("utf-8")) print("æå¡ç«¯ -> 客æ·ç«¯: %s" % send_data) except Exception as excep: print("error: ", excep) # 7. å ³ésocket对象 sock_obj.close() server.close() def client_func(port): """ 客æ·ç«¯ """ # 1. å建客æ·ç«¯çsocket对象 client = socket.socket() # 2. è¿æ¥æå¡ç«¯ï¼ éè¦æå®ç«¯å£åIP client.connect(("127.0.0.1", port)) while True: # 3. ç»æå¡ç«¯åéæ°æ® send_data = input("客æ·ç«¯>").strip() client.send(send_data.encode("utf-8")) if send_data == "quit": break # 4. è·åæå¡ç«¯è¿åçæ¶æ¯ recv_data = client.recv(1024).decode("utf-8") print("æå¡ç«¯ -> 客æ·ç«¯: %s" % recv_data) # 5. å ³ésocketè¿æ¥ client.close() if __name__ == '__main__': flag = sys.argv[1] if flag == "server": server_func(9901) else: client_func(9901)