PyZMQ Documentation

Table Of Contents

Previous topic

core.poll

Next topic

core.version

This Page

core.pysocket

Module: core.pysocket

0MQ Socket pure Python methods.

Functions

zmq.core.pysocket.bind_to_random_port(addr, min_port=49152, max_port=65536, max_tries=100)

Bind this socket to a random port in a range.

Parameters :

addr : str

The address string without the port to pass to Socket.bind().

min_port : int, optional

The minimum port in the range of ports to try (inclusive).

max_port : int, optional

The maximum port in the range of ports to try (exclusive).

max_tries : int, optional

The maximum number of bind attempts to make.

Returns :

port : int

The port the socket was bound to.

Raises :

ZMQBindError :

if max_tries reached before successful bind

zmq.core.pysocket.getsockopt_string(option, encoding='utf-8')

Get the value of a socket option.

See the 0MQ documentation for details on specific options.

Parameters :

option : int

The option to retrieve. Currently, IDENTITY is the only gettable option that can return a string.

Returns :

optval : unicode string (unicode on py2, str on py3)

The value of the option as a unicode string.

zmq.core.pysocket.poll(timeout=None, flags=POLLIN)

Poll the socket for events. The default is to poll forever for incoming events. Timeout is in milliseconds, if specified.

Parameters :

timeout : int [default: None]

The timeout (in milliseconds) to wait for an event. If unspecified (or secified None), will wait forever for an event.

flags : bitfield (int) [default: POLLIN]

The event flags to poll for (any combination of POLLIN|POLLOUT). The default is to check for incoming events (POLLIN).

Returns :

events : bitfield (int)

The events that are ready and waiting. Will be 0 if no events were ready by the time timeout was reached.

zmq.core.pysocket.recv_json(flags=0)

Receive a Python object as a message using json to serialize.

Parameters :

flags : int

Any valid recv flag.

Returns :

obj : Python object

The Python object that arrives as a message.

zmq.core.pysocket.recv_multipart(flags=0, copy=True, track=False)

Receive a multipart message as a list of bytes or Frame objects.

Parameters :

flags : int, optional

Any supported flag: NOBLOCK. If NOBLOCK is set, this method will raise a ZMQError with EAGAIN if a message is not ready. If NOBLOCK is not set, then this method will block until a message arrives.

copy : bool, optional

Should the message frame(s) be received in a copying or non-copying manner? If False a Frame object is returned for each part, if True a copy of the bytes is made for each frame.

track : bool, optional

Should the message frame(s) be tracked for notification that ZMQ has finished with it? (ignored if copy=True)

Returns :

——- :

msg_parts : list

A list of frames in the multipart message; either Frames or bytes, depending on copy.

zmq.core.pysocket.recv_pyobj(flags=0)

Receive a Python object as a message using pickle to serialize.

Parameters :

flags : int

Any valid recv flag.

Returns :

obj : Python object

The Python object that arrives as a message.

zmq.core.pysocket.recv_string(flags=0, encoding='utf-8')

Receive a unicode string, as sent by send_string.

Parameters :

flags : int

Any valid recv flag.

encoding : str [default: ‘utf-8’]

The encoding to be used

Returns :

s : unicode string (unicode on py2, str on py3)

The Python unicode string that arrives as encoded bytes.

zmq.core.pysocket.send_json(obj, flags=0)

Send a Python object as a message using json to serialize.

Parameters :

obj : Python object

The Python object to send.

flags : int

Any valid send flag.

zmq.core.pysocket.send_multipart(msg_parts, flags=0, copy=True, track=False)

Send a sequence of buffers as a multipart message.

Parameters :

msg_parts : iterable

A sequence of objects to send as a multipart message. Each element can be any sendable object (Frame, bytes, buffer-providers)

flags : int, optional

SNDMORE is handled automatically for frames before the last.

copy : bool, optional

Should the frame(s) be sent in a copying or non-copying manner.

track : bool, optional

Should the frame(s) be tracked for notification that ZMQ has finished with it (ignored if copy=True).

Returns :

None : if copy or not track

MessageTracker : if track and not copy

a MessageTracker object, whose pending property will be True until the last send is completed.

zmq.core.pysocket.send_pyobj(obj, flags=0, protocol=-1)

Send a Python object as a message using pickle to serialize.

Parameters :

obj : Python object

The Python object to send.

flags : int

Any valid send flag.

protocol : int

The pickle protocol number to use. Default of -1 will select the highest supported number. Use 0 for multiple platform support.

zmq.core.pysocket.send_string(u, flags=0, copy=False, encoding='utf-8')

Send a Python unicode string as a message with an encoding.

0MQ communicates with raw bytes, so you must encode/decode text (unicode on py2, str on py3) around 0MQ.

Parameters :

u : Python unicode string (unicode on py2, str on py3)

The unicode string to send.

flags : int, optional

Any valid send flag.

encoding : str [default: ‘utf-8’]

The encoding to be used

zmq.core.pysocket.setsockopt_string(option, optval, encoding='utf-8')

Set socket options with a unicode object it is simply a wrapper for setsockopt to protect from encoding ambiguity.

See the 0MQ documentation for details on specific options.

Parameters :

option : int

The name of the option to set. Can be any of: SUBSCRIBE, UNSUBSCRIBE, IDENTITY

optval : unicode string (unicode on py2, str on py3)

The value of the option to set.

encoding : str

The encoding to be used, default is utf8

zmq.core.pysocket.setsockopt_string(option, optval, encoding='utf-8')

Set socket options with a unicode object it is simply a wrapper for setsockopt to protect from encoding ambiguity.

See the 0MQ documentation for details on specific options.

Parameters :

option : int

The name of the option to set. Can be any of: SUBSCRIBE, UNSUBSCRIBE, IDENTITY

optval : unicode string (unicode on py2, str on py3)

The value of the option to set.

encoding : str

The encoding to be used, default is utf8