在python中线程化服务器套接字
我想要python中的线程服务器套接字。我从网上找到了这个代码。我工作得很好,但我不知道发生了什么。 任何人都可以简单地解释一下,我想把数据从main发送到MiTcpHandler类。我该怎么做在python中线程化服务器套接字,python,multithreading,sockets,Python,Multithreading,Sockets,我想要python中的线程服务器套接字。我从网上找到了这个代码。我工作得很好,但我不知道发生了什么。 任何人都可以简单地解释一下,我想把数据从main发送到MiTcpHandler类。我该怎么做 import SocketServer import threading import time class MiTcpHandler(SocketServer.BaseRequestHandler): def handle(self): data = "" w
import SocketServer
import threading
import time
class MiTcpHandler(SocketServer.BaseRequestHandler):
def handle(self):
data = ""
while data != 'End':
data = self.request.recv(1024)
print data
time.sleep(0.1)
class ThreadServer(SocketServer.ThreadingMixIn,SocketServer.ForkingTCPServer):
pass
def Main():
host=''
port = 9998
server = ThreadServer((host,port),MiTcpHandler)
server_thread = threading.Thread(target=server.serve_forever)
server_thread.start()
Main()
如评论中所述,您应该阅读模块文档。它包括如何使用它的示例。从中您可以了解代码是如何工作的 对于问题的第二部分,如何将数据从“main”发送到线程,您需要建立到服务器的TCP连接(同一主机上的端口9998)。您可以使用:
def Main():
host=''
port = 9998
server = ThreadServer((host,port),MiTcpHandler)
server_thread = threading.Thread(target=server.serve_forever)
server_thread.start()
# connect to the server and send some data
import socket
s = socket.create_connection(('localhost', 9998))
s.send('hi there\n')
s.send('End\n')
这将从作为客户端的主功能向服务器发送数据。请注意,您需要在处理程序中做更多的工作,以正确处理连接终止和终止
“End”
字符串的检测。我建议您阅读SocketServer
模块的文档:我不想从套接字发送数据。我想从args或类似的东西发送,从init或其他。。。