Class for a connection-oriented client.
More...
#include <StreamSocketClientDescriptor.hpp>
Inheritance diagram for StreamSocketClientDescriptor:
Public Member Functions
Constructor for local (i.e., AF_UNIX) sockets.
Constructor for TCP (i.e., AF_INET) sockets.
Destructor.
Run asynchronous read operation.
void
async_read (void(*handler)(void *b, size_t size), void *b, size_t size)
Run asynchronous read operation.
Run asynchronous write operation.
void
async_write (void(*handler)(void *b, size_t size), void *b, size_t size)
Run asynchronous write operation.
Method to read from the descriptor and fill a buffer.
int
read (void *p, size_t size)
Method to read from the descriptor.
Method to write data in a buffer to the descriptor.
int
write (const void *p, size_t size)
Method to write to the descriptor.
int
write (const std::string &s)
Method to write a string to the descriptor.
Method to close the descriptor.
Method to get descriptor number.
Copy constructor.
Assignment operator.
Method to flush this specific descriptor.
Ioctl on the file descriptor.
int
ioctl (int request, void *argp)
Ioctl on the file descriptor.
Additional Inherited Members
Low-level read.
int
do_write (const void *p, size_t size)
Low-level write.
Constructor.
Number of the file descriptor.
Detailed Description
Constructor & Destructor Documentation
Constructor for local (i.e., AF_UNIX) sockets.
It calls socket()+connect().
- Parameters
-
name Name of the local socket on the filesystem
- Exceptions
-
runtime_error in case of error in socket() or connect()
Definition at line 38 of file StreamSocketClientDescriptor.cpp.
{
// socket()
fd_ = socket(AF_UNIX, SOCK_STREAM, 0);
ERROR(
"Creating client socket");
throw std::runtime_error ("Client socket error");
}
// connect()
struct sockaddr_un serv_addr;
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sun_family = AF_UNIX;
strncpy(serv_addr.sun_path, name.c_str(), sizeof(serv_addr.sun_path) - 1);
if (connect(
fd_, (
struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0) {
throw std::runtime_error ("Client socket error");
}
}
Here is the call graph for this function:
Constructor for TCP (i.e., AF_INET) sockets.
It calls socket()+connect().
- Parameters
-
port Port of the socket
- Exceptions
-
runtime_error in case of error in socket() or connect()
Definition at line 68 of file StreamSocketClientDescriptor.cpp.
{
// socket()
fd_ = socket(AF_INET, SOCK_STREAM, 0);
ERROR(
"Creating client socket");
throw std::runtime_error ("Client socket error");
}
// connect()
struct sockaddr_in serv_addr;
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(port);
struct in_addr addr;
inet_aton(address.c_str(), &addr);
bcopy(&addr, &serv_addr.sin_addr.s_addr, sizeof(addr));
if (connect(
fd_, (
struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0) {
throw std::runtime_error ("Client socket error");
}
}
Here is the call graph for this function:
The documentation for this class was generated from the following files: