看板 Python 關於我們 聯絡資訊
請教一下,我想寫個Server用執行緒去處理連線 那麼主程序除了用raw_input() 讓它一直等在那之外,有其它方式嗎?? 謝謝 import socket,hashlib import thread, time, threading class ServerThread(threading.Thread): def __init__(self,lock,threadName,ServerSocket): super(ServerThread,self).__init__(name=threadName) self.lock=lock self.Socket=ServerSocket def run(self): global count shaAnswer="" self.lock.acquire() print "Thread" while 1: client,address=self.Socket.accept() data=client.recv(512) data=data.strip('\x00') ShaResult=hashlib.sha1(data).hexdigest() client.send(ShaResult) client.close() self.lock.release() if __name__ == '__main__': count=0 lock=thread.allocate_lock() host = '' port = 7779 backlog = 5 size = 1024 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((host,port)) print "listen" s.listen(backlog) print "go to loop" ServerThread(lock,"ServerThread-",s,).start() raw_input() s.close() -- 生命是個過程 可悲的是它不能重來 可喜的是它也不需要重來 ~~~童夢奇緣~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.127.191.91
Yukirin:time.sleep(100) 可以讓程式停在這邊100秒 03/22 17:17
NolandTA:無限迴圈可以嗎? 03/22 18:33
areyo:嗯,這方法也想過,看來只能這樣,謝謝 03/22 19:05
mantour:t = ServerThread(lock,"ServerThread-",s) 03/22 22:04
mantour:t.start() 03/22 22:04
mantour:t.join() 03/22 22:05
mantour:這樣不行嗎@@ 03/22 22:06
areyo:原來如此,謝謝你 03/22 22:52