Welcome, guest | Sign In | My Account | Store | Cart
import time,socket

def recvall(the_socket,timeout=''):
   
#setup to use non-blocking sockets
   
#if no data arrives it assumes transaction is done
   
#recv() returns a string
    the_socket
.setblocking(0)
    total_data
=[];data=''
   
begin=time.time()
   
if not timeout:
        timeout
=1
   
while 1:
       
#if you got some data, then break after wait sec
       
if total_data and time.time()-begin>timeout:
           
break
       
#if you got no data at all, wait a little longer
       
elif time.time()-begin>timeout*2:
           
break
        wait
=0
       
try:
            data
=the_socket.recv(4096)
           
if data:
                total_data
.append(data)
               
begin=time.time()
                data
='';wait=0
           
else:
                time
.sleep(0.1)
       
except:
           
pass
       
#When a recv returns 0 bytes, other side has closed
    result
=''.join(total_data)
   
return result

History