|
my $libzmq = 'libzmq.so.1' ;
my $zmq_init = FFI::Raw -> new(
$libzmq , 'zmq_init' ,
FFI::Raw::ptr,
FFI::Raw:: int
);
my $zmq_socket = FFI::Raw -> new(
$libzmq , 'zmq_socket' ,
FFI::Raw::ptr,
FFI::Raw::ptr, FFI::Raw:: int
);
my $zmq_bind = FFI::Raw -> new(
$libzmq , 'zmq_bind' ,
FFI::Raw:: int ,
FFI::Raw::ptr, FFI::Raw::str
);
my $zmq_recv = FFI::Raw -> new(
$libzmq , 'zmq_recv' ,
FFI::Raw:: int ,
FFI::Raw::ptr, FFI::Raw::ptr, FFI::Raw:: int
);
my $zmq_msg_init = FFI::Raw -> new(
$libzmq , 'zmq_msg_init' ,
FFI::Raw:: int ,
FFI::Raw::ptr
);
my $zmq_msg_data = FFI::Raw -> new(
$libzmq , 'zmq_msg_data' ,
FFI::Raw::str,
FFI::Raw::ptr
);
my $ctx = $zmq_init -> call(1);
my $sock = $zmq_socket -> call( $ctx , 4);
my $msg = FFI::Raw::memptr(40);
$zmq_msg_init -> call( $msg );
$zmq_recv -> call( $sock , $msg , 0);
say $zmq_msg_data -> call( $msg );
|