Write bytes to a connected socket. This is a connection-style alias for socket_send(). It returns the number of bytes written, which may be less than the input length for a nonblocking socket or a large payload.

This is a connection-style alias for socket_receive(). Blocking sockets wait until at least one byte is available or the peer closes the connection.

socket_write(socket, object, flags = 0L)

socket_send(socket, data, flags = 0L)

socket_read(socket, n = 4096L, flags = 0L)

socket_receive(socket, n = 4096L, flags = 0L)

Arguments

socket

A connected socket handle.

object

A raw vector or character scalar.

flags

Native recv() flags.

data

A raw vector or character scalar.

n

Maximum number of bytes to receive.

Value

Number of bytes written, or NA_integer_ if I/O would block.

Number of bytes sent, or NA_integer_ if nonblocking I/O would block.

A raw vector, or NULL if a nonblocking read would block.

A raw vector, or NULL if nonblocking I/O would block.

Examples

if (interactive()) {
  server <- socket_create()
  client <- socket_create()
  socket_bind(server, "127.0.0.1", 0L)
  socket_listen(server)
  socket_connect(client, "127.0.0.1", socket_local_name(server)$port)
  peer <- socket_accept(server)
  socket_write(client, "hello")
  socket_read(peer, 5L)
  socket_close(peer); socket_close(client); socket_close(server)
}