- 论坛徽章:
- 0
|
class ListenThread(threading.Thread):
def __init__(self,server):
threading.Thread.__init__(self)
self.server = server
def run(self):
while 1:
self.client, addr = self.server.accept()
data = self.client.recv(1024)
file = os.open(data, os.O_WRONLY|os.O_CREAT|os.O_EXCL)
while 1:
rdata = self.client.recv(1024)
if not rdata:
break
os.write(file, rdata)
os.close(file)
self.client.close()
上面是一个子线程的类,下面是主线程中的一段代码,在执行过程中,print 'ListenThread start !!!'可以正常显示出来,可是当执行完run方法后应该要显示print 'ListenThread finished !!!',却一直没有显示,程序貌似一直在等待,ctrl-c中断程序后,经md5验证文件传输却是正常的,本程序是一个简单的文件传输程序,c/s模式,贴出来的代码都是server端的
self.LT = ListenThread(server)
self.LT.setDaemon(True)
print 'ListenThread start !!!'
self.LT.run()
print 'ListenThread finished !!!'
请教一下问题出在哪里,应该是文件传输完了以后,程序就正常退出 |
|