# ACE_SOCK_IO Class Reference

Defines the methods for the ACE socket wrapper I/O routines (e.g., send/recv). More...

`#include <SOCK_IO.h>`

Inheritance diagram for ACE_SOCK_IO:

[legend]
Collaboration diagram for ACE_SOCK_IO:

[legend]
List of all members.

## Public Member Functions

| ACE_SOCK_IO (void)
| Constructor.
| ~ACE_SOCK_IO (void)
| Destructor.
ssize_t | recv (void *buf, size_t n, int flags, const ACE_Time_Value *timeout=0) const
| Recv an <n> byte buffer from the connected socket.
ssize_t | recv (void *buf, size_t n, const ACE_Time_Value *timeout=0) const
| Recv an <n> byte buffer from the connected socket.
ssize_t | recvv (iovec iov[], size_t n, const ACE_Time_Value *timeout=0) const
| Recv an <iovec> of size <n> from the connected socket.
ssize_t | recv (iovec iov[], size_t n, const ACE_Time_Value *timeout=0) const
ssize_t | recvv (iovec *io_vec, const ACE_Time_Value *timeout=0) const
ssize_t | recv (iovec *io_vec, const ACE_Time_Value *timeout=0) const
| Same as above. Deprecated.
ssize_t | recv (size_t n,...) const
| Recv <n> varargs messages to the connected socket.
ssize_t | recv (void *buf, size_t n, ACE_OVERLAPPED *overlapped) const
| Recv <n> bytes via Win32 <readfile> using overlapped I/O.
ssize_t | send (const void *buf, size_t n, int flags, const ACE_Time_Value *timeout=0) const
| Send an <n> byte buffer to the connected socket.
ssize_t | send (const void *buf, size_t n, const ACE_Time_Value *timeout=0) const
| Send an <n> byte buffer to the connected socket.
ssize_t | sendv (const iovec iov[], size_t n, const ACE_Time_Value *timeout=0) const
| Send an <iovec> of size <n> to the connected socket.
ssize_t | send (const iovec iov[], size_t n, const ACE_Time_Value *timeout=0) const
| Same as above. Deprecated.
ssize_t | send (size_t n,...) const
| Send <n> varargs messages to the connected socket.
ssize_t | send (const void *buf, size_t n, ACE_OVERLAPPED *overlapped) const
| Send <n> bytes via Win32 <writefile> using overlapped I/O.
void | dump (void) const
| Dump the state of an object.

## Public Attributes

| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.

## Detailed Description

Defines the methods for the ACE socket wrapper I/O routines (e.g., send/recv).

If <timeout> == 0, then the call behaves as a normal send/recv call, i.e., for blocking sockets, the call will block until action is possible; for non-blocking sockets, EWOULDBLOCK will be returned if no action is immediately possible. If <timeout> != 0, the call will wait until the relative time specified in *<timeout> elapses. Errors are reported by -1 and 0 return values. If the operation times out, -1 is returned with <errno == ETIME>. If it succeeds the number of bytes transferred is returned. Methods with the extra <flags> argument will always result in <send> getting called. Methods without the extra <flags> argument will result in <send> getting called on Win32 platforms, and <write> getting called on non-Win32 platforms.

## Constructor & Destructor Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ACE_SOCK_IO::ACE_SOCK_IO | ( | void |  | ) |

| Constructor.

ACE_INLINE ACE_SOCK_IO::~ACE_SOCK_IO | ( | void |  | ) |

| Destructor.

## Member Function Documentation

ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_SOCK_IO::dump | ( | void |  | ) | const

| Dump the state of an object. Reimplemented from ACE_SOCK. Reimplemented in ACE_LSOCK_CODgram, ACE_LSOCK_Stream, ACE_SOCK_CODgram, ACE_SOCK_SEQPACK_Association, and ACE_SOCK_Stream.

ACE_INLINE ssize_t ACE_SOCK_IO::recv | ( | void * | buf,
|  | size_t | n,
|  | ACE_OVERLAPPED * | overlapped
| ) | const

| Recv <n> bytes via Win32 <readfile> using overlapped I/O.

ssize_t ACE_SOCK_IO::recv | ( | size_t | n,
|  |  | ...
| ) | const

| Recv <n> varargs messages to the connected socket.

ACE_INLINE ssize_t ACE_SOCK_IO::recv | ( | iovec * | io_vec,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

| Same as above. Deprecated.

ACE_INLINE ssize_t ACE_SOCK_IO::recv | ( | iovec | iov[],
|  | size_t | n,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

Deprecated:
  Same as above. Deprecated.

ACE_INLINE ssize_t ACE_SOCK_IO::recv | ( | void * | buf,
|  | size_t | n,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

| Recv an <n> byte buffer from the connected socket.

ACE_INLINE ssize_t ACE_SOCK_IO::recv | ( | void * | buf,
|  | size_t | n,
|  | int | flags,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

| Recv an <n> byte buffer from the connected socket.

ssize_t ACE_SOCK_IO::recvv | ( | iovec * | io_vec,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

| Allows a client to read from a socket without having to provide a buffer to read. This method determines how much data is in the socket, allocates a buffer of this size, reads in the data, and returns the number of bytes read. The caller is responsible for deleting the member in the <iov_base> field of <io_vec> using delete [] io_vec->iov_base.

ACE_INLINE ssize_t ACE_SOCK_IO::recvv | ( | iovec | iov[],
|  | size_t | n,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

Recv an <iovec> of size <n> from the connected socket.

Note:
  The value of n will be silently reduced to the maximum value an `int` can hold if needed. This is due to the underlying system calls on many OSes limiting the number of `iovec` structures that can be passed in one call.

ACE_INLINE ssize_t ACE_SOCK_IO::send | ( | const void * | buf,
|  | size_t | n,
|  | ACE_OVERLAPPED * | overlapped
| ) | const

| Send <n> bytes via Win32 <writefile> using overlapped I/O.

ssize_t ACE_SOCK_IO::send | ( | size_t | n,
|  |  | ...
| ) | const

| Send <n> varargs messages to the connected socket.

ACE_INLINE ssize_t ACE_SOCK_IO::send | ( | const iovec | iov[],
|  | size_t | n,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

| Same as above. Deprecated.

ACE_INLINE ssize_t ACE_SOCK_IO::send | ( | const void * | buf,
|  | size_t | n,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

| Send an <n> byte buffer to the connected socket.

ACE_INLINE ssize_t ACE_SOCK_IO::send | ( | const void * | buf,
|  | size_t | n,
|  | int | flags,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

| Send an <n> byte buffer to the connected socket.

ACE_INLINE ssize_t ACE_SOCK_IO::sendv | ( | const iovec | iov[],
|  | size_t | n,
|  | const ACE_Time_Value * | timeout = `0`
| ) | const

Send an <iovec> of size <n> to the connected socket.

Note:
  The value of n will be silently reduced to the maximum value an `int` can hold if needed. This is due to the underlying system calls on many OSes limiting the number of `iovec` structures that can be passed in one call.

## Member Data Documentation

ACE_SOCK_IO::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_SOCK. Reimplemented in ACE_LSOCK_CODgram, ACE_LSOCK_Stream, ACE_SOCK_CODgram, ACE_SOCK_SEQPACK_Association, and ACE_SOCK_Stream.

The documentation for this class was generated from the following files:

- SOCK_IO.h
- SOCK_IO.cpp
- SOCK_IO.inl