Ben şu iki Python sınıfları için talep Besleyicideki iletişim için: istemci "kapatma" gönderirbir Soket Sunucusu
Böyleceimport socketserver
class MyServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
def __init__(self, server_address):
socketserver.TCPServer.__init__(self, server_address, MyTcpHandler)
self.allow_reuse_address = True
self.serve_forever()
class MyTcpHandler(socketserver.BaseRequestHandler):
data = ""
def handle(self):
self.data = self.request.recv(BUFF_SIZE).strip()
if self.data == b"shutdown":
self.request.close()
import threading
threading.Thread(target=SERVER.shutdown).start()
, kendisi kapatma gerektiği sunucusu. Bir geçici çözüm olarak SERVER
genel değişkenini MyServer
nesnesine ayarlıyorum, daha sonra yukarıda gösterildiği gibi başka bir iş parçacığında SERVER.shutdown
numaralı telefonu arayın.
Ancak bir global değişken kullanarak cehennem kadar çirkin. Peki, doğrudan istek işleyicisinden soket sunucusuyla nasıl iletişim kurabilirim?