ในบทความวันนี้จะมาปรับปรุงโปรแกรม TCP Iterative Server ที่เขียนด้วยภาษา Python ให้เป็น Concurrent Server ครับ ซึ่งหลักการก็เหมือนกับการเขียนโปรแกรมด้วยภาษา Java นั่นคือใช้ เธรด (thread) มาให้บริการไคลเอนต์ที่ติดต่อเข้ามา โปรแกรมที่ปรับปรุงแล้วเป็นดังนี้ครับ
01: # tcpserver.py
02: import socket
03: import threading
04: def echo_thread_function(connectionSocket):
05: clientSentenceBytes = connectionSocket.recv(4096)
06: clientSentence = clientSentenceBytes.decode("utf-8")
07: connectionSocket.send(str.encode(clientSentence.upper()))
08: connectionSocket.close()
09:
10: welcomeSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
11: welcomeSocket.bind(("localhost", 6789))
12: welcomeSocket.listen(5)
13: while True:
14: print("The server is waiting")
15: connectionSocket, address = welcomeSocket.accept()
16: echoThread = threading.Thread(target=echo_thread_function, args=(connectionSocket,))
17: echoThread.start()
ไม่มีความคิดเห็น:
แสดงความคิดเห็น