建立一个全局字典,每次创建一个线程的时候,把线程实例保存到字典中去。
from SocketServer import ThreadingTCPServer, StreamRequestHandler
lkpool={}
class StreamHandler(StreamRequestHandler):
def send(self,text):
def handle(self):
self.semawrite=threading.BoundedSemaphore(1)
lkpool[self.client_address]=self
def finish(self):
del lkpool[self.client_address]
调用的时候可以这样,任何地方都可以调用。
lkpool[address].send(something)
On 6/18/07, 秦川 wrote:
> 是这样的,我在尝试用python些一个C/S的程序,目的是通过TCP连接实现局域网内
聊天的简单通信。
> 我的做法是,当客户端程序连接过来的时候,新建一个线程,开启新的TCP连接,然
后发送和接收都由这个线程来进行。我遇到的问题是,如果一个连接要向另一个连接发
送信息(即通过服务器中转一下),他就需要执行别的线程里面的发消息方法。
>
> 我不知道有什么办法可以直接调用。我用的蠢办法是在建立线程的时候把一个函数传
递到__init__中去,然后当收到信息的时候调用该函数(有点像C#的委托啊),
> 这个函数中