본문 바로가기

Python

쓰레드를 이용한 소켓

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 를 가지고 있다.

'Python' 카테고리의 다른 글

scapy 이용 arp 패킷 보내기.  (0) 2015.05.01
네이버 실시간 검색어 파싱  (0) 2015.04.28
파이썬 게임 서버개발 - 1  (0) 2015.04.27
scapy - 패킷 제작  (0) 2015.04.27
파이썬 포트 스캐너  (0) 2015.04.26