def run(): if len(sys.argv) < 3: raise Exception('Usage: python sender.py filename port') server = TcpServer() server.listen(int(sys.argv[2])) while True: accepter, addr = server.accept() print 'Accept addr {}'.format(addr) thread = threading.Thread(target=sender, args=(accepter, sys.argv[1], )) thread.daemon = True thread.start() server.close()
def run(args): port = int(args.p) tcp_server = TcpServer() tcp_server.listen(port) while True: stream, addr = tcp_server.accept() print 'Accept add {}'.format(addr) if args.nd: stream.set_nodelay() while True: data_length = stream.recvall(INT_LENGTH) if len(data_length) <= 0: break data = stream.recvall(int(data_length)) assert len(data) == int(data_length) print '{} recv {} bytes.'.format(now(), len(data)) ack = str(len(data)).zfill(INT_LENGTH) stream.socket.sendall(ack) print '{} send {} bytes.'.format(now(), len(ack))