Socket¶
-
class
kanzi::connect
::
Socket
¶ Cross platform C++ wrapper for posix sockets.
Public Types
Public Functions
-
Socket
(int fd = -1)¶ Constructor.
- Parameters
fd
: File descriptor of a socket, or -1 for closed socket.
-
~Socket
()¶ Destructor.
-
int
accept
(bool loopBack = false)¶ Accept connection to socket.
- Return
File descriptor of the accepted socket or -1 for error.
- Parameters
loopBack
: Accept only connections from this device.
-
bool
bind
(int port, bool loopBack = false, bool reuseaddr = true)¶ Bind an address to socket.
- Return
True if operation was successful, otherwise false.
- Parameters
port
: Port to bind.loopBack
: Bind to address of this device.reuseaddr
: if true then SO_REUSEADDR is opted to socket.
-
bool
bindToInterface
(int port, const string &interfacename, bool reuseaddr)¶ Binds a socket to specific port and interface.
- Return
true if bound successfully, false if some errors were met.
- Parameters
port
: port number where to bindinterfacename
: either name or ip address of the interface to bind to.reuseaddr
: if true then SO_REUSEADDR is opted to socket.
-
int
close
()¶ - Return
If successful, returns 0. Otherwise returns -1 as error.
-
bool
connect
(const string &server, int port)¶ Connect socket to server.
- Return
True if socket was successfully connected.
- Parameters
server
: Server address.port
: Server port.
-
bool
connect
(sockaddr address)¶ Connect socket to server.
- Return
True if socket was successfully connected.
- Parameters
address
: Address of the server.
-
bool
create
(int af, int type, int protocol)¶ Create socket.
- Return
True if socket was successfully created.
- Parameters
af
: Address family.type
: Socket type.protocol
: Protocol type.
-
int
getFD
() const¶ Returns file descriptor of this socket.
- Return
File descriptor of this socket.
-
string
getIPAddress
()¶ Retrieves ip address of this socket.
- Return
Ip address of this socket as string.
-
int
getPort
()¶ Retrieves port of this socket.
- Return
port of this socket.
-
string
getRemoteIPAddress
() const¶ Retrieves remote ip address of this socket.
- Return
Ip address of the remote side of socket as string.
-
sockaddr *
getSockAddr
()¶ Retrieves socket address of this socket.
- Return
Socket address of this socket.
-
bool
isConnected
() const¶ Checks whether the socket is connected.
- Return
true if socket still holds a functional connection.
-
int
listen
(int maxConnections)¶ Listen for connections on this socket.
- Return
If successful, returns 0. Otherwise returns -1 as error.
- Parameters
maxConnections
: Maximum amount of connections.
-
int
read
(vector<char> &data)¶ Read data from socket.
- Return
Amount of data read, zero for EOF or -1 for error.
- Parameters
data
: Output data.
-
int
readOne
(char &data)¶ Read one byte of data from socket.
- Return
Amount of data read, zero for EOF or -1 for error.
- Parameters
data
: Output data.
-
void
setBlocking
(bool blocking)¶ Sets socket blocking mode.
- Parameters
blocking
: If true, sets socket to blocking mode.
-
int
shutdown
(bool read, bool write)¶ - Return
If successful, returns 0. Otherwise returns -1 as error.
- Parameters
read
: if true, receptions will be disabled.write
: if true, transmissions will be disabled.
-
int
write
(const vector<char> &data)¶ Write data to socket.
- Return
Amount of data written, zero for EOF or -1 for error.
- Parameters
data
: Data to write.
Public Static Functions
-
unsigned long
bytesAvailable
(int fd)¶ Non-blocking check of how much data is available for reading from descriptor.
- Return
Amount of data available.
- Parameters
fd
: File descriptor.
-
enum AddressType
determineAddressType
(const string &candidate)¶ Determines a type of given address.
- Return
enumeration value. if empty string is passed then its recognized as interface.
- Parameters
candidate
: the candidate to check.
-
vector<string>
getBindableAddresses
(const string &interfacename, size_t mask = (Proto_IPV4 | Proto_IPV6))¶ Returns a list of addresses that belong into specific interface.
- Return
vector of addresses bound to specific interface.
- Parameters
interfacename
: The name of the interface for which to seach.mask
: The address types to return.
-
bool
getIPAndPort
(sockaddr_storage *sender, string &ip, string &port)¶ Translate sockaddr into ip address and port number.
- Return
true if retrieval succeeded, false on error.
- Parameters
sender
: the sender addressip
: the ip addressport
: the port number.
-
bool
looksLikeIPV6Address
(const string &address)¶ Checks whether given address looks like a IPv6 address.
- Return
true if looks like ipv6 address.
- Parameters
address
: the address to examine
-
int
read
(int fd, vector<char> &data)¶ Read all data from file descriptor to data buffer.
- Return
Amount of data read, zero for EOF or -1 for error.
- Parameters
fd
: File descriptor.data
: Output data.
-
int
readOne
(int fd, char &data)¶ Read one byte from a file descriptor to a character.
- Return
Amount of data read, zero for EOF or -1 for error.
- Parameters
fd
: File descriptor.data
: byte where to read.
-