Send Receive Multiple Raw Buffers {pbdZMQ} | R Documentation

## Send Receive Multiple Raw Buffers

### Description

Send and receive functions for multiple raw buffers

### Usage

    zmq.send.multipart(socket, parts, serialize = TRUE)

    zmq.recv.multipart(socket, unserialize = TRUE)

### Arguments

`socket` | a ZMQ socket
`parts` | a vector of multiple buffers to be sent
`serialize, unserialize` | if serialize/unserialize the received multiple buffers

### Details

`zmq.send.multipart()` is a high level R function to send multiple raw messages `parts` at once.

`zmq.recv.multipart()` is a high level R function to receive multiple raw messages at once.

### Value

`zmq.send.multipart()` returns.

`zmq.recv.multipart()` returns.

### Author(s)

Wei-Chen Chen wccsnow@gmail.com.

### References

ZeroMQ/4.1.0 API Reference: http://api.zeromq.org/4-1:_start

Programming with Big Data in R Website: http://r-pbd.org/

### See Also

`zmq.msg.send()`, `zmq.msg.recv()`.

### Examples

    ## Not run:
    ### Using request-reply pattern.

    ### At the server, run next in background or the other window.
    library(pbdZMQ, quietly = TRUE)

    context <- zmq.ctx.new()
    responder <- zmq.socket(context, .pbd_env$ZMQ.ST$REP)
    zmq.bind(responder, "tcp://*:5555")

    ret <- zmq.recv.multipart(responder, unserialize = TRUE)
    parts <- as.list(rep("World", 5))
    zmq.send.multipart(responder, parts)
    for(i in 1:5) cat(ret[[i]])

    zmq.close(responder)
    zmq.ctx.destroy(context)

    ### At a client, run next in foreground.
    library(pbdZMQ, quietly = TRUE)

    context <- zmq.ctx.new()
    requester <- zmq.socket(context, .pbd_env$ZMQ.ST$REQ)
    zmq.connect(requester, "tcp://localhost:5555")

    parts <- lapply(1:5, function(i.req){ paste("Sending Hello ", i.req, "\n") })
    zmq.send.multipart(requester, parts)
    ret <- zmq.recv.multipart(requester, unserialize = TRUE)
    print(ret)

    zmq.close(requester)
    zmq.ctx.destroy(context)

    ## End(Not run)

[Package pbdZMQ version 0.2-4 Index]