Beispiel #1
0
 def test_single_socket_forwarder_bind(self):
     if zmq.zmq_version() in ('4.1.1', '4.0.6'):
         raise SkipTest("libzmq-%s broke single-socket devices" %
                        zmq.zmq_version())
     dev = devices.ThreadDevice(zmq.QUEUE, zmq.REP, -1)
     port = dev.bind_in_to_random_port('tcp://10.0.0.7')
     req = self.context.socket(zmq.REQ)
     req.connect('tcp://10.0.0.7:%i' % port)
     dev.start()
     time.sleep(.25)
     msg = b'hello'
     req.send(msg)
     self.assertEqual(msg, self.recv(req))
     del dev
     req.close()
     dev = devices.ThreadDevice(zmq.QUEUE, zmq.REP, -1)
     port = dev.bind_in_to_random_port('tcp://10.0.0.7')
     req = self.context.socket(zmq.REQ)
     req.connect('tcp://10.0.0.7:%i' % port)
     dev.start()
     time.sleep(.25)
     msg = b'hello again'
     req.send(msg)
     self.assertEqual(msg, self.recv(req))
     del dev
     req.close()
Beispiel #2
0
 def test_single_socket_forwarder_bind(self):
     dev = devices.ThreadDevice(zmq.QUEUE, zmq.REP, -1)
     # select random port:
     binder = self.context.socket(zmq.REQ)
     port = binder.bind_to_random_port('tcp://127.0.0.1')
     binder.close()
     time.sleep(0.1)
     req = self.context.socket(zmq.REQ)
     req.connect('tcp://127.0.0.1:%i' % port)
     dev.bind_in('tcp://127.0.0.1:%i' % port)
     dev.start()
     time.sleep(.25)
     msg = b'hello'
     req.send(msg)
     self.assertEqual(msg, self.recv(req))
     del dev
     req.close()
     dev = devices.ThreadDevice(zmq.QUEUE, zmq.REP, -1)
     # select random port:
     binder = self.context.socket(zmq.REQ)
     port = binder.bind_to_random_port('tcp://127.0.0.1')
     binder.close()
     time.sleep(0.1)
     req = self.context.socket(zmq.REQ)
     req.connect('tcp://127.0.0.1:%i' % port)
     dev.bind_in('tcp://127.0.0.1:%i' % port)
     dev.start()
     time.sleep(.25)
     msg = b'hello again'
     req.send(msg)
     self.assertEqual(msg, self.recv(req))
     del dev
     req.close()
Beispiel #3
0
 def test_single_socket_forwarder_bind(self):
     dev = devices.ThreadDevice(zmq.FORWARDER, zmq.REP, -1)
     req = self.context.socket(zmq.REQ)
     port = 12345
     req.connect('tcp://127.0.0.1:%i'%port)
     dev.bind_in('tcp://127.0.0.1:%i'%port)
     dev.start()
     time.sleep(.25)
     msg = asbytes('hello')
     req.send(msg)
     self.assertEquals(msg, req.recv())
     del dev
     del req
     dev = devices.ThreadDevice(zmq.FORWARDER, zmq.REP, -1)
     req = self.context.socket(zmq.REQ)
     port = 12346
     req.connect('tcp://127.0.0.1:%i'%port)
     dev.bind_in('tcp://127.0.0.1:%i'%port)
     dev.start()
     time.sleep(.25)
     msg = asbytes('hello again')
     req.send(msg)
     self.assertEquals(msg, req.recv())
     del dev
     del req
Beispiel #4
0
 def test_labels(self):
     """test device support for SNDLABEL"""
     if zmq.zmq_version() < '3.0.0':
         raise SkipTest("Only for libzmq 3")
     dev = devices.ThreadDevice(zmq.QUEUE, zmq.XREP, -1)
     # select random port:
     binder = self.context.socket(zmq.XREQ)
     port = binder.bind_to_random_port('tcp://127.0.0.1')
     binder.close()
     time.sleep(0.1)
     req = self.context.socket(zmq.REQ)
     req.connect('tcp://127.0.0.1:%i'%port)
     dev.bind_in('tcp://127.0.0.1:%i'%port)
     dev.start()
     time.sleep(.25)
     msg = asbytes('hello')
     req.send(msg, zmq.SNDLABEL)
     req.send(msg, zmq.SNDMORE)
     req.send(msg)
     
     self.assertEquals(msg, self.recv(req))
     self.assertTrue(req.rcvlabel)
     self.assertEquals(msg, self.recv(req))
     self.assertTrue(req.rcvmore)
     self.assertEquals(msg, self.recv(req))
     del dev
     req.close()
Beispiel #5
0
 def test_device_bind_to_random_binderror(self):
     dev = devices.ThreadDevice(zmq.PULL, zmq.PUSH, -1)
     iface = 'tcp://10.0.0.7'
     try:
         for i in range(11):
             dev.bind_in_to_random_port(iface,
                                        min_port=10000,
                                        max_port=10010)
     except zmq.ZMQBindError as e:
         return
     else:
         self.fail('Should have failed')
Beispiel #6
0
 def test_device_bind_to_random_with_args(self):
     dev = devices.ThreadDevice(zmq.PULL, zmq.PUSH, -1)
     iface = 'tcp://10.0.0.7'
     ports = []
     min, max = 5000, 5050
     ports.extend([
         dev.bind_in_to_random_port(iface, min_port=min, max_port=max),
         dev.bind_out_to_random_port(iface, min_port=min, max_port=max)
     ])
     for port in ports:
         if port < min or port > max:
             self.fail('Unexpected port number: %i' % port)
Beispiel #7
0
 def test_single_socket_forwarder_connect(self):
     dev = devices.ThreadDevice(zmq.QUEUE, zmq.REP, -1)
     req = self.context.socket(zmq.REQ)
     port = req.bind_to_random_port('tcp://127.0.0.1')
     dev.connect_in('tcp://127.0.0.1:%i' % port)
     dev.start()
     time.sleep(.25)
     msg = asbytes('hello')
     req.send(msg)
     self.assertEquals(msg, req.recv())
     del dev
     req.close()
     dev = devices.ThreadDevice(zmq.QUEUE, zmq.REP, -1)
     req = self.context.socket(zmq.REQ)
     port = req.bind_to_random_port('tcp://127.0.0.1')
     dev.connect_out('tcp://127.0.0.1:%i' % port)
     dev.start()
     time.sleep(.25)
     msg = asbytes('hello again')
     req.send(msg)
     self.assertEquals(msg, req.recv())
     del dev
     req.close()
Beispiel #8
0
def start_heartbeat(id,
                    connection_in='tcp://127.0.0.1:5555',
                    connection_out='tcp://127.0.0.1:5556'):
    ctx = zmq.Context()

    ID = id
    # if len(sys.argv) > 1:
    #     ID = sys.argv[1].encode('UTF-8')
    # str(ID).encode('UTF-8')

    dev = devices.ThreadDevice(zmq.FORWARDER, zmq.SUB, zmq.DEALER)
    dev.setsockopt_in(zmq.SUBSCRIBE, b"")
    dev.setsockopt_out(zmq.IDENTITY, ID)
    dev.connect_in(connection_in)
    dev.connect_out(connection_out)
    dev.start()
def heart(name=None, heart_server_add=None):

    dev = devices.ThreadDevice(zmq.FORWARDER, zmq.SUB, zmq.DEALER)
    dev.setsockopt_in(zmq.SUBSCRIBE, b"")
    dev.connect_in('tcp://{0}:15555'.format(heart_server_add))
    dev.connect_out('tcp://{0}:15556'.format(heart_server_add))
    dev.setsockopt_out(zmq.IDENTITY, bytes(name, encoding='utf-8'))
    dev.start()

    time.sleep(1)

    A = numpy.random.random((2**11, 2**11))
    while True:
        tic = time.time()
        numpy.dot(A, A.transpose())
        print("blocked for %.3f s"%(time.time()-tic))
Beispiel #10
0
Use ping.py to see how responsive it is.

Authors
-------
* MinRK
"""
from __future__ import print_function

import time
import numpy
import zmq
from zmq import devices

ctx = zmq.Context()

dev = devices.ThreadDevice(zmq.FORWARDER, zmq.REP, -1)
dev.bind_in('tcp://127.0.0.1:10111')
dev.setsockopt_in(zmq.IDENTITY, b"whoda")
dev.start()

# wait for connections
time.sleep(1)

A = numpy.random.random((2**11, 2**12))
print("starting blocking loop")
while True:
    tic = time.time()
    numpy.dot(A, A.transpose())
    print("blocked for %.3f s" % (time.time() - tic))
Beispiel #11
0
remain responsive to pings during this time. Use heartbeater.py to
ping this heart, and see the responsiveness.

Authors
-------
* MinRK
"""

import time
import numpy
import zmq
from zmq import devices

ctx = zmq.Context()

dev = devices.ThreadDevice(zmq.FORWARDER, zmq.SUB, zmq.XREQ)
dev.setsockopt_in(zmq.SUBSCRIBE, "")
dev.connect_in('tcp://127.0.0.1:5555')
dev.connect_out('tcp://127.0.0.1:5556')
dev.start()

#wait for connections
time.sleep(1)

A = numpy.random.random((2**11, 2**11))
print "starting blocking loop"
while True:
    tic = time.time()
    numpy.dot(A, A.transpose())
    print "blocked for %.3f s" % (time.time() - tic)
Beispiel #12
0
sys.path = ['../toollib/', './', '../../'] + sys.path
import time

import zmq
from zmq.asyncio import Context, Poller
import asyncio

import sys
import zmq
from zmq import devices
import zlib
import pickle
from datetime import datetime, timedelta

dev = devices.ThreadDevice(device_type=zmq.QUEUE,
                           in_type=zmq.ROUTER,
                           out_type=zmq.DEALER)

dev.bind_in('tcp://127.0.0.1:8096')
dev.bind_out('tcp://*:8092')
dev.start()

#wait for connections
time.sleep(1)
url = 'tcp://127.0.0.1:8096'

ctx = Context.instance()


def send_zipped_pickle(obj, flags=0, protocol=-1):
    pobj = pickle.dumps(obj, protocol)
Beispiel #13
0
remain responsive to pings during this time. Use heartbeater.py to
ping this heart, and see the responsiveness.

Authors
-------
* MinRK
"""

import time
import numpy
import zmq
from zmq import devices

ctx = zmq.Context()

dev = devices.ThreadDevice(zmq.FORWARDER, zmq.SUB, zmq.DEALER)
dev.setsockopt_in(zmq.SUBSCRIBE, "")
dev.connect_in('tcp://127.0.0.1:5555')
dev.connect_out('tcp://127.0.0.1:5556')
dev.start()

#wait for connections
time.sleep(1)

A = numpy.random.random((2**11, 2**11))
print("starting blocking loop")
while True:
    tic = time.time()
    numpy.dot(A, A.transpose())
    print("blocked for %.3f s" % (time.time() - tic))