예제 #1
0
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))
예제 #2
0
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()