下面是我写的一个简单的client,其中用到的一些简单但功能强大的python库。
#!/usr/bin/python
import threadimport socket
import time
import cStringIO
running = True;
def request_segment(host, port, location):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall('GET %s HTTP/1.1\r\n\r\n' % location)
read_size = 500 * 1024;
while running:
response = cStringIO.StringIO()
response.write(s.recv(read_size))
print "[%s:%d%s] recv %dKB" % (host, port, location, read_size/1024);
time.sleep(1);
print "data len %d" % response.tell()
s.close()
if __name__ == "__main__":
if(1):
thread.start_new_thread(request_segment, ("192.168.2.10", 20129, "/channel/0/encoder/0"));
thread.start_new_thread(request_segment, ("192.168.2.10", 20129, "/channel/0/encoder/1"));
else:
thread.start_new_thread(request_segment, ("192.168.61.25", 20129, "/channel/0/encoder/0"));
thread.start_new_thread(request_segment, ("192.168.61.25", 20129, "/channel/0/encoder/1"));
thread.start_new_thread(request_segment, ("192.168.61.25", 20129, "/channel/1/encoder/0"));
thread.start_new_thread(request_segment, ("192.168.61.25", 20129, "/channel/1/encoder/1"));
thread.start_new_thread(request_segment, ("192.168.61.25", 20129, "/channel/2/encoder/0"));
thread.start_new_thread(request_segment, ("192.168.61.25", 20129, "/channel/2/encoder/1"));
while running:
ch = raw_input();
if(ch == "q"):
running = False;
break;