我正在学习如何在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))
谢谢