2014-04-29 19 views
5

Verilerin okunmadan önce okunacak sokette bekleyip beklemediğini kontrol etmek için bir fonksiyonellik istiyorum. Böyle bir şey yararlı olacaktır:Python'daki soketlerde veri bulunup bulunmadığını kontrol edin

if (data available) then read data 

else wait in blocking mode till data becomes available 

Python

Bu `select` sistem çağrısı sizin için yaptığı iştir
+0

içinde bunu başarmak nasıl. https://docs.python.org/2.7/library/select.html – squiguy

+0

@squiguy Bana küçük bir örnek verebilir misiniz? –

cevap

4
while 1: 
    socket_list = [sys.stdin, s] 
    # Get the list sockets which are readable 
    read_sockets, write_sockets, error_sockets = select.select(socket_list , [], []) 
    for sock in read_sockets: 
    #incoming message from remote server 
    if sock == s: 
     data = sock.recv(4096) 
     if not data : 
     print '\nDisconnected from server' 
     sys.exit() 
     else : 
     #print data 
     sys.stdout.write(data) 


    #user entered a message 
    else : 
    msg = sys.stdin.readline() 
    s.send(msg) 
İlgili konular