python中的Python多线程TCP套接字服务器

时间:2014-12-18 23:42:10

标签: python multithreading sockets plugins tcp

我正在学习如何在Python中创建多线程套接字服务器。我使用了一些我不记得的网站上的例子。我正在尝试创建简单的插件系统,但我没有成功。它说我传递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))    

这是我的插件:

from socket import *
def response(key):
    return '<response>' + key + '</response>'
class helloWorld():
    def fireIt(clientsock,data):
        print clientsock
        clientsock.send(response(data))
        print 'SENDING: ' + repr(response(data))

谢谢

0 个答案:

没有答案