| 
    ngscopeclient v0.1
    
   | 
 
Class representing a network socket. More...
#include <Socket.h>
Public Member Functions | |
| Socket (int af, int type, int protocol) | |
| Creates a socket.  More... | |
| Socket (ZSOCKET sock, int af=PF_INET) | |
| Wraps an existing socket.  More... | |
| virtual | ~Socket (void) | 
| Closes a socket.  | |
| bool | Connect (const std::string &host, uint16_t port) | 
| Establishes a TCP connection to a remote host.  More... | |
| bool | Bind (unsigned short port) | 
| Binds the socket to an address.  More... | |
| bool | Listen () | 
| Puts the socket in listening mode.  | |
| Socket | Accept (sockaddr_in *addr, ZSOCKLEN len) | 
| Accepts an IPv4 connection on the socket.  More... | |
| Socket | Accept (sockaddr_in6 *addr, ZSOCKLEN len) | 
| Accepts a IPv6 connection on the socket.  More... | |
| Socket | Accept () | 
| Accepts a connection on the socket.  More... | |
| ZSOCKET | Detach () | 
| Detaches the socket from this object.  More... | |
| void | FlushRxBuffer (void) | 
| Flush RX buffer.  More... | |
| bool | SendLooped (const unsigned char *buf, int count) | 
| Sends data over the socket.  More... | |
| bool | RecvLooped (unsigned char *buf, int len) | 
| Recives data from a UDP socket.  More... | |
| bool | RecvPascalString (std::string &str) | 
| Reads a Pascal-style string from a socket.  More... | |
| bool | SendPascalString (const std::string &str) | 
| Sends a string to a socket.  More... | |
| bool | DisableNagle () | 
| Disable the Nagle algorithm on the socket so that messages get sent right away.  More... | |
| bool | DisableDelayedACK () | 
| Disable delayed-ACK so that we send ACKs immediately upon packet receipt.  More... | |
| bool | SetReuseaddr (bool on=true) | 
| Set SO_REUSEADDR on our socket, allowing binding to it again without waiting for timeout if our task crashed hard.  More... | |
| bool | SetRxTimeout (unsigned int microSeconds) | 
| bool | SetTxTimeout (unsigned int microSeconds) | 
| bool | SetTxBuffer (int bufsize) | 
| bool | SetRxBuffer (int bufsize) | 
| operator const ZSOCKET & () const | |
| Convert us to the native OS socket type.  More... | |
| bool | IsValid () const | 
| Socket & | operator= (ZSOCKET rhs) | 
| void | Close () | 
Protected Member Functions | |
| void | Open () | 
Class representing a network socket.
| Socket::Socket | ( | int | af, | 
| int | type, | ||
| int | protocol | ||
| ) | 
Creates a socket.
| af | Address family of the socket (layer 3 protocol selection) | 
| type | Type of the socket (stream or datagram) | 
| protocol | Protocol of the socket (layer 4 protocol selection) | 
| Socket::Socket | ( | ZSOCKET | sock, | 
| int | af = PF_INET  | 
        ||
| ) | 
Wraps an existing socket.
| sock | Socket to encapsulate | 
| af | Address family of the provided socket | 
| Socket Socket::Accept | ( | ) | 
Accepts a connection on the socket.
addr Output address of accepted connection
len Size of the output buffer
| Socket Socket::Accept | ( | sockaddr_in * | addr, | 
| ZSOCKLEN | len | ||
| ) | 
Accepts an IPv4 connection on the socket.
addr Output address of accepted connection
len Size of the output buffer
| Socket Socket::Accept | ( | sockaddr_in6 * | addr, | 
| ZSOCKLEN | len | ||
| ) | 
Accepts a IPv6 connection on the socket.
addr Output address of accepted connection
len Size of the output buffer
| bool Socket::Bind | ( | unsigned short | port | ) | 
Binds the socket to an address.
TODO: allow binding to specific addresses etc
| port | Port to listen on | 
| bool Socket::Connect | ( | const std::string & | host, | 
| uint16_t | port | ||
| ) | 
Establishes a TCP connection to a remote host.
| host | DNS name or string IP address of remote host | 
| port | Port to connect to (host byte order) | 
| ZSOCKET Socket::Detach | ( | ) | 
Detaches the socket from this object.
| bool Socket::DisableDelayedACK | ( | ) | 
Disable delayed-ACK so that we send ACKs immediately upon packet receipt.
| bool Socket::DisableNagle | ( | ) | 
Disable the Nagle algorithm on the socket so that messages get sent right away.
| void Socket::FlushRxBuffer | ( | void | ) | 
Flush RX buffer.
      
  | 
  inline | 
Convert us to the native OS socket type.
| bool Socket::RecvLooped | ( | unsigned char * | buf, | 
| int | len | ||
| ) | 
Recives data from a UDP socket.
| buf | Output buffer | 
| len | Length of the buffer | 
| addr | IP address of the sender | 
| flags | Socket flags | 
Sends data to a UDP socket
| buf | Input buffer | 
| len | Length of the buffer | 
| addr | IP address of the recipient | 
| flags | Socket flags | 
Recieves data from the socket
| buf | The buffer to read into | 
| len | Length of read buffer | 
| bool Socket::RecvPascalString | ( | std::string & | str | ) | 
Reads a Pascal-style string from a socket.
| bool Socket::SendLooped | ( | const unsigned char * | buf, | 
| int | count | ||
| ) | 
Sends data over the socket.
| buf | Buffer to send | 
| count | Length of data buffer | 
| bool Socket::SendPascalString | ( | const std::string & | str | ) | 
Sends a string to a socket.
| fd | Socket handle | 
| str | String to send | 
| bool Socket::SetReuseaddr | ( | bool | on = true | ) | 
Set SO_REUSEADDR on our socket, allowing binding to it again without waiting for timeout if our task crashed hard.