PythonにおけるTcpプロトコル応用のTCPサービス端末-スレッド版

6256 ワード

スレッド実装により、1つのサービス側が複数のクライアントのニーズを同時にサービスする.
TCPサービス-スレッド版コード実装:
 1 import socket
 2 import threading
 3 
 4 
 5 def handle_client_socket(new_socket, ip_port):
 6     print("", ip_port)
 7     while True:
 8         # 8.           
 9         send_data = "  ,     。"
10         send_data_encode = send_data.encode("gbk")
11         new_socket.send(send_data_encode)
12         # 7.           ,            1024
13         recv_data = new_socket.recv(1024)
14         if recv_data:
15             recv_data_decode = recv_data.decode("gbk")
16             print("", recv_data_decode)
17         else:
18             print("      ", ip_port)
19             break
20     # 9.     
21     #         
22     new_socket.close()
23 
24 
25 # 1.    
26 if __name__ == '__main__':
27     # 2.       
28     tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
29 
30     # 3.      
31     tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
32 
33     # 4.    
34     tcp_server_socket.bind(("", 9090))
35 
36     # 5.    ,           128
37     tcp_server_socket.listen(128)
38     while True:
39         # 6.         ,   accpet()          ,    IP+   
40         new_socket, ip_port = tcp_server_socket.accept()
41         socket_thread = threading.Thread(target=handle_client_socket, args=(new_socket, ip_port), daemon=True)
42         socket_thread.start()
43 
44     #        
45     # tcp_server_socket.close()