File Transfer Functions | R Documentation |
High level functions calling zmq_send()
and zmq_recv()
to transfer a file in 200 KiB chunks.
zmq.sendfile(
port,
filename,
verbose = FALSE,
flags = ZMQ.SR()$BLOCK,
forcebin = FALSE,
ctx = NULL,
socket = NULL
)
zmq.recvfile(
port,
endpoint,
filename,
verbose = FALSE,
flags = ZMQ.SR()$BLOCK,
forcebin = FALSE,
ctx = NULL,
socket = NULL
)
port |
A valid tcp port. |
filename |
The name (as a string) of the in/out files. The in and out file names can be different. |
verbose |
Logical; determines if a progress bar should be shown. |
flags |
A flag for the method used by |
forcebin |
Force to read/send/recv/write in binary form. Typically for a Windows
system, text (ASCII) and binary files are processed differently.
If |
ctx |
A ZMQ ctx. If |
socket |
A ZMQ socket based on |
endpoint |
A ZMQ socket endpoint. |
If no socket is passed, then by default zmq.sendfile()
binds a
ZMQ_PUSH
socket, and zmq.recvfile()
connects to this with a
ZMQ_PULL
socket. On the other hand, a PUSH/PULL, REQ/REP, or REP/REQ
socket pairing may be passed. In that case, the socket should already be
connected to the desired endpoint. Be careful not to pass the wrong socket
combination (e.g., do not do REQ/REQ), as this can put the processes in an
un-recoverable state.
zmq.sendfile()
and zmq.recvfile()
return
number of bytes (invisible) in the sent message if successful,
otherwise returns -1 (invisible) and sets errno
to the error
value, see ZeroMQ manual for details.
Drew Schmidt and Christian Heckendorf
ZeroMQ/4.1.0 API Reference: https://libzmq.readthedocs.io/en/zeromq4-1/
Programming with Big Data in R Website: https://pbdr.org/
zmq.msg.send()
, zmq.msg.recv()
.
## Not run:
### Run the sender and receiver code in separate R sessions.
# Receiver
library(pbdZMQ, quietly = TRUE)
zmq.recvfile(55555, "localhost", "/tmp/outfile", verbose=TRUE)
# Sender
library(pbdZMQ, quietly = TRUE)
zmq.sendfile(55555, "/tmp/infile", verbose=TRUE)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.