Пример #1
0
def messenger_benchmark(N, is_server):
    received = 0

    def cb(msg):
        nonlocal received
        received += 1

    m = Messenger(cb)
    m.connect("uni49que", is_server)
    print("Starting test ...")
    gc.collect()
    try:
        t_start = time.ticks_ms()
        for i in range(N):
            if is_server:
                m.send("msg {}".format(i))
                m.wait_msg()
            else:
                m.wait_msg()
                m.send("ok {}".format(i))
        t_stop = time.ticks_ms()
        dt = time.ticks_diff(t_stop, t_start)
        if N != received:
            print("***** sent {} messages, received {}".format(N, received))
        print(">>> Messenger throughput: {:8.4f} msg/s (N={})".format(
            1000 * received / dt, N))
    finally:
        m.disconnect()
Пример #2
0
def send_read(name, m):
    print("send_read", name, m)
    try:
        n = 1
        for i in range(10):
            if random() < 0.8:
                msg = str.encode("msg {} from {}, tail={}".format(
                    n, name, 'X' * (n**2)))
                m.send(msg)
                n += 1
            m.check_msg()
            sleep(2 * random())
    finally:
        m.disconnect()


def cb(msg):
    print("cb got", msg)


ID = "uni49que"

# is_server must be True on one peer, False on the other
# this hack uses the IP to distingish the two
# more typically they would run different software, alleviating the need for this hack ...
is_server = WLAN(STA_IF).ifconfig()[0].endswith('133')

m = Messenger(cb)
m.connect(ID, is_server)
send_read("server" if is_server else "client", m)