Python Socket Test Recv() Data
I have a problem with my python script using socket. I want to test if the client use the correct file, not an other tool like telnet. The server : import socket s = socket.socket(
Solution 1:
You can use select
function to limit the time your server waits for new client connection or incoming data from client:
import socket
import select
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
while 1:
# wait up to 60 seconds that a client connects
newClient,_,_ = select.select([s], [], [], 60)
if not (newClient):
# no client wanted to connect
print 'No new client in last 60 seconds!'
return
else:
# new connection
print 'New client!'
conn, addr = s.accept()
# wait up to 60 seconds that the client send data
readable,_,_ = select.select([conn], [], [], 60)
if (readable):
data = conn.recv(1024)
if data == 'test':
print 'ok'
else:
print 'client do not send test'
else:
print 'client send nothing'
# close connection
conn.close()
see select
.
Post a Comment for "Python Socket Test Recv() Data"