Python多线程TCP套接字服务器

2024-05-05 19:40:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习如何用Python创建多线程socket服务器。我用了一些我不记得的网站的例子。我试图创建简单的插件系统,但我没有成功。它说我传递了3个参数而不是2个。这是我的代码:

def handler(clientsock,addr):
    while 1:
        data = clientsock.recv(BUFF)
        if not data: break
        data_sanitized = data.rstrip()
        print repr(addr) + ' received: ' + repr(data_sanitized)
        from plugins.helloWorld import helloWorld
        clazz.fireIt(clientsock,data)#HERE IS THE PROBLEM I THINK
        if "close" == data.rstrip(): break
    clientsock.close()
    print addr, "CLIENT CLOSED CONNECTION"
if __name__=='__main__':
    ADDR = (HOST, PORT)
    serversock = socket(AF_INET, SOCK_STREAM)
    serversock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
    serversock.bind(ADDR)
    print 'STARTED SERVER, WAITING FOR CONNECTIONS', PORT
    serversock.listen(5)
    while 1:
        clientsock, addr = serversock.accept()
        print 'INCOMING CONNECTION FROM: ', addr
        thread.start_new_thread(handler, (clientsock, adde))    

这是我的插件:

^{pr2}$

谢谢你


Tags: 插件dataifsockethelloworldhandlersanitizedaddr