---
name: "ACE_SOCK_IO"
section: "3"
platform: "linux"
package: "libace-doc"
version: "5.0.7-4"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/ACE_SOCK_IO"
---

# ACE\_SOCK\_IO(3)

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

## NAME

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

## SYNOPSIS

```
#include <ace/SOCK_IO.h>
class ACE_SOCK_IO : public ACE_SOCK
{
  public:
    ACE_SOCK_IO (void);
    ~ACE_SOCK_IO (void);
    ssize_t send (const void *buf, size_t n, int flags) const;
    ssize_t recv (void *buf, size_t n, int flags) const;
    ssize_t send (const void *buf, size_t n) const;
    ssize_t recv (void *buf, size_t n) const;
    ssize_t sendv (const iovec iov[], size_t n) const;
    ssize_t send (const iovec iov[], size_t n) const;
    ssize_t recvv (iovec *io_vec, const ACE_Time_Value *timeout = 0);
    ssize_t recv (iovec *io_vec, const ACE_Time_Value *timeout = 0);
    ssize_t send (
        const void *buf,
        size_t n,
        int flags,
        const ACE_Time_Value *timeout
        ) const;
    ssize_t recv (
        void *buf,
        size_t n,
        int flags,
        const ACE_Time_Value *timeout
        ) const;
    ssize_t send (
        const void *buf,
        size_t n,
        const ACE_Time_Value *timeout
        ) const;
    ssize_t recv (
        void *buf,
        size_t n,
        const ACE_Time_Value *timeout
        ) const;
    ssize_t send (size_t n, ...) const;
    ssize_t recv (size_t n, ...) const;
    ssize_t send (
        const void *buf,
        size_t n,
        ACE_OVERLAPPED *overlapped
        ) const;
    ssize_t recv (
        void *buf,
        size_t n,
        ACE_OVERLAPPED *overlapped
        ) const;
    void dump (void) const;
    ACE_ALLOC_HOOK_DECLARE;
};
```

## Initialization and termination methods.

```
ACE_SOCK_IO (void);
```

Constructor.

```
~ACE_SOCK_IO (void);
```

Destructor.

```
ssize_t send (const void *buf, size_t n, int flags) const;
```

Send an n byte buffer to the connected socket (uses send(3n)).

```
ssize_t recv (void *buf, size_t n, int flags) const;
```

Recv an n byte buffer from the connected socket (uses recv(3n)).

```
ssize_t send (const void *buf, size_t n) const;
```

Send an n byte buffer to the connected socket (uses [write(2)](/write/2.md)).

```
ssize_t recv (void *buf, size_t n) const;
```

Recv an n byte buffer from the connected socket (uses [read(2)](/read/2.md)).

```
ssize_t sendv (const iovec iov[], size_t n) const;
```

Send an iovec of size n to the connected socket.

```
ssize_t send (const iovec iov[], size_t n) const;
```

Same as above.  Deprecated.

```
ssize_t recvv (iovec *io_vec, const ACE_Time_Value *timeout = 0);
```

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.

```
ssize_t recv (iovec *io_vec, const ACE_Time_Value *timeout = 0);
```

Same as above.  Deprecated.

```
ssize_t send (
    const void *buf,
    size_t n,
    int flags,
    const ACE_Time_Value *timeout
    ) const;
```

Wait to to timeout amount of time to send up to n bytes into buf from handle (uses the send call).  If send times out a -1 is returned with errno == ETIME.  If it succeeds the number of bytes sent is returned.

```
ssize_t recv (
    void *buf,
    size_t n,
    int flags,
    const ACE_Time_Value *timeout
    ) const;
```

Wait up to timeout amount of time to receive up to n bytes into buf from handle (uses the recv call).  If recv times out a -1 is returned with errno == ETIME.  If it succeeds the number of bytes received is returned.

```
ssize_t send (
    const void *buf,
    size_t n,
    const ACE_Time_Value *timeout
    ) const;
```

Wait to to timeout amount of time to send up to n bytes into buf from handle (uses the send call).  If send times out a -1 is returned with errno == ETIME.  If it succeeds the number of bytes sent is returned.

```
ssize_t recv (
    void *buf,
    size_t n,
    const ACE_Time_Value *timeout
    ) const;
```

Wait up to timeout amount of time to receive up to n bytes into buf from handle (uses the recv call).  If recv times out a -1 is returned with errno == ETIME.  If it succeeds the number of bytes received is returned.

```
ssize_t send (size_t n, ...) const;
```

Send n varargs messages to the connected socket.

```
ssize_t recv (size_t n, ...) const;
```

Recv 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.

```
ssize_t recv (void *buf, size_t n, ACE_OVERLAPPED *overlapped) const;
```

Recv n bytes via Win32 ReadFile using overlapped I/O.

```
void dump (void) const;
```

Dump the state of an object.

```
ACE_ALLOC_HOOK_DECLARE;
```

Declare the dynamic allocation hooks.

## AUTHOR

Doug Schmidt

## LIBRARY

ace
