PythonにおけるTcpプロトコル応用のTCPサービス端末-スレッド版
6256 ワード
スレッド実装により、1つのサービス側が複数のクライアントのニーズを同時にサービスする.
TCPサービス-スレッド版コード実装:
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()