18 #ifdef TGT_OS_TYPE_VXWORKS 30 #elif defined TGT_OS_TYPE_LINUX || TGT_OS_TYPE_DARWIN 31 #include <arpa/inet.h> 32 #include <sys/socket.h> 35 #error OS not supported for IP Socket Communications 51 struct sockaddr_in address;
54 if ((socketFd = ::socket(AF_INET, SOCK_STREAM, 0)) == -1) {
58 address.sin_family = AF_INET;
59 address.sin_port = htons(this->
m_port);
62 #if defined TGT_OS_TYPE_VXWORKS || TGT_OS_TYPE_DARWIN 63 address.sin_len =
static_cast<U8>(
sizeof(
struct sockaddr_in));
79 if (::connect(socketFd, reinterpret_cast<struct sockaddr*>(&address),
sizeof(address)) < 0) {
83 socketDescriptor.
fd = socketFd;
static SocketIpStatus addressToIp4(const char *address, void *ip4)
converts a given address in dot form x.x.x.x to an ip address. ONLY works for IPv4.
SocketIpStatus openProtocol(SocketDescriptor &socketDescriptor) override
Tcp specific implementation for opening a client socket.
bool isValidPort(U16 port) override
Check if the given port is valid for the socket.
Failed to connect socket.
Failed to configure socket.
PlatformSizeType FwSizeType
SocketIpStatus recv(const SocketDescriptor &fd, U8 *const data, FwSizeType &size)
receive data from the IP socket from the given buffer
SocketIpStatus setupTimeouts(int socketFd)
setup the socket timeout properties of the opened outgoing socket
static void log(const char *format,...)
log a formated string with supplied arguments
int fd
Used for all sockets to track the communication file descriptor.
PlatformSignedSizeType FwSignedSizeType
virtual SocketIpStatus send(const SocketDescriptor &socketDescriptor, const U8 *const data, const FwSizeType size)
send data out the IP socket from the given buffer
U16 m_port
IP address port used.
TcpClientSocket()
Constructor for client socket tcp implementation.
Socket operation successful.
FwSignedSizeType sendProtocol(const SocketDescriptor &socketDescriptor, const U8 *const data, const FwSizeType size) override
Protocol specific implementation of send. Called directly with retry from send.
FwSignedSizeType recvProtocol(const SocketDescriptor &socketDescriptor, U8 *const data, const FwSizeType size) override
Protocol specific implementation of recv. Called directly with error handling from recv...
uint8_t U8
8-bit unsigned integer
void close(const SocketDescriptor &socketDescriptor)
closes the socket
char m_hostname[SOCKET_MAX_HOSTNAME_SIZE]
Hostname to supply.
SocketIpStatus
Status enumeration for socket return values.
Helper base-class for setting up Berkeley sockets.