Показать сообщение отдельно

  #104  
Старый 02.04.2009, 16:52
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами: 9423746

Репутация: 2399


По умолчанию

Vid0k, в некоторих случаях твой скрипт будет виснуть.

вот:
PHP код:
    def sendit(sock,packet='',timeout=1):
        
import time
        
if (packet!=''):
            
self.sock.send(packet)
        
self.sock.setblocking(0)
        
total_data=[]
        
data=''
        
begin=time.time()
        while 
1:
            if 
total_data and time.time()-begin>timeout:
                break
            
elif time.time()-begin>timeout*2:
                break
            try:
                
data=self.sock.recv(1024)
                if 
data:
                    
total_data.append(data)
                    
begin=time.time()
                else:
                    
time.sleep(0)
            
except:
                
pass
        
return ''.join(total_data
и испозуеш:
PHP код:
socket.socket(socket.AF_INETsocket.SOCK_STREAM)
s.connect(("www.google.ru"80)) 
result sendit(s,"GET / HTTP/1.1\r\nHost: google.ru\r\n\r\n")
print 
result 
з.ы.: повторяюсь, но для получения страници лучше использовать уже готовую urllib
 
Ответить с цитированием