Python

쓰레드를 이용한 소켓

kcrong 2015. 4. 27. 10:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from socket import *
from thread import *
import time
 
def clientsend(conn):
    conn.send("HOW ARE YOU?")
    while 1:
        data=conn.recv(1024)
        if not data:
           break
        print data
 
    conn.close()    
 
s=socket(AF_INET,SOCK_STREAM)
s.bind(("localhost",8888))
s.listen(1)
conn,addr=s.accept()
 
start_new_thread(clientsend ,(conn,))
 
while ThreadsLeft:
    time.sleep(0.1)
print "Exit"
 
cs


원래 쓰레드 종료까지 기다리기 위해 

if done == 0:

sleep(0.1)

를 사용했다. (쓰레드가 완료되면 done 변수를 1로 초기화 하는 방식으로)


근데 검색해보니 쓰레드 종료대기를 위한 예약어가 있었다.

ThreadsLeft 는 실행중인 쓰레드가 있으면 True, 없으면 false 를 가지고 있다.