Daisuke Maki > ZMQ-1.04 > ZMQ::Socket

Download:
ZMQ-1.04.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Source   Latest Release: ZMQ-1.06

NAME ^

ZMQ::Socket - ZMQ Socket object

SYNOPSIS ^

    use ZMQ;
    use ZMQ::Constants qw(ZMQ_PUSH);

    my $cxt  = ZMQ::Context->new();
    my $sock = $cxt->socket( ZMQ_PUSH );

    # zmq 2.1.x
    $sock->send( $msg );
    my $msg = $sock->recv();

    # zmq 3.1.x
    $sock->send( $data, $len, $flags );
    $sock->recv( $msg, $len, $flags );
    $sock->sendmsg( $msg );
    my $msg = $sock->recvmsg();

DESCRIPTION ^

A ZMQ::Socket object represents a 0MQ socket.

ZMQ::Socket object can only be created via ZMQ::Context objects, so there are no public constructors.

The types of sockets that you can create, and the semantics of the socket object varies greatly on the underlying version of libzmq, so please read the documents for libzmq for details.

METHODS ^

bind

The bind($endpoint) method function creates an endpoint for accepting connections and binds it to the socket.

inproc

Local in-process (inter-thread) communication transport.

ipc

Local inter-process communication transport.

tcp

Unicast transport using TCP.

pgm, epgm

Reliable multicast transport using PGM.

connect

Connect to an existing endpoint. Takes an enpoint string as argument, see the documentation for bind($endpoint) above.

If an error occurs ( zmq_connect() returns a non-zero status ), then an exception is throw.

close

Closes and terminates the socket.

send

The semantics of this function varies greatly depending on the underlying version of libzmq.

For ZMQ::LibZMQ2:

    $sock->send( $msg [, $flags] );
    $sock->send( $raw_string [, $flags] );

For ZMQ::LibZMQ3:

    $sock->send( $msg, $len [, $flags] );

sendmsg ( $msg [, $flags] )

The sendmsg($msg, $flags) method queues the given message to be sent to the socket. The flags argument is a combination of the flags defined below.

sendmsg is only available if you are using ZMQ::LibZMQ3 as the underlying library.

recv

The semantics of this function varies greatly depending on the underlying version of libzmq.

For ZMQ::LibZMQ2:

    $msg = $sock->recv();

For ZMQ::LibZMQ3:

    $sock->recv( $msg, $len [, $flags] );

recvmsg

The my $msg = $sock->recvmsg($flags) method receives a message from the socket and returns it as a new ZMQ::Message object. If there are no messages available on the specified socket the recvmsg() method blocks until the request can be satisfied. The flags argument is a combination of the flags defined below.

recvmsg is only available if you are using ZMQ::LibZMQ3 as the underlying library.

getsockopt

The my $optval = $sock->getsockopt(ZMQ_SOME_OPTION) method call retrieves the value for the given socket option.

The list of option names (constants) varies depending on the underlying libzmq version. Please refer to the manual for libzmq for the correct list.

setsockopt

The $sock->setsockopt(ZMQ_SOME_OPTION, $value) method call sets the specified option to the given value.

The list of option names (constants) varies depending on the underlying libzmq version. Please refer to the manual for libzmq for the correct list.

CAVEATS ^

ZMQ::Socket objects aren't thread safe due to the underlying library. Therefore, they are currently not cloned when a new Perl ithread is spawned. The variables in the new thread that contained the socket in the parent thread will be a scalar reference to undef in the new thread. This makes the Perl wrapper thread safe (i.e. no segmentation faults).

SEE ALSO ^

ZMQ, ZMQ::Socket

http://zeromq.org

AUTHOR ^

Daisuke Maki <daisuke@endeworks.jp>

COPYRIGHT AND LICENSE ^

The ZMQ module is

Copyright (C) 2010 by Daisuke Maki

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.0 or, at your option, any later version of Perl 5 you may have available.

syntax highlighting: