Library: Net
Package: Sockets
Header: Poco/Net/RawSocket.h
Description
This class provides an interface to a raw IP socket.
Inheritance
Direct Base Classes: Socket
All Base Classes: Socket
Member Summary
Member Functions: bind, connect, getBroadcast, operator =, receiveBytes, receiveFrom, sendBytes, sendTo, setBroadcast
Inherited Functions: address, available, close, destroyBufVec, error, fromFileDescriptor, getBlocking, getError, getKeepAlive, getLinger, getNoDelay, getOOBInline, getOption, getReceiveBufferSize, getReceiveTimeout, getReuseAddress, getReusePort, getSendBufferSize, getSendTimeout, impl, init, isDatagram, isNull, isRaw, isStream, lastError, lastErrorDesc, makeBufVec, makeBuffer, operator !=, operator <, operator <=, operator =, operator ==, operator >, operator >=, peerAddress, poll, secure, select, setBlocking, setKeepAlive, setLinger, setNoDelay, setOOBInline, setOption, setReceiveBufferSize, setReceiveTimeout, setReuseAddress, setReusePort, setSendBufferSize, setSendTimeout, sockfd, supportsIPv4, supportsIPv6, type
Constructors
RawSocket
RawSocket();
Creates an unconnected IPv4 raw socket.
RawSocket
RawSocket(
const Socket & socket
);
Creates the RawSocket with the SocketImpl from another socket. The SocketImpl must be a RawSocketImpl, otherwise an InvalidArgumentException will be thrown.
RawSocket
RawSocket(
const RawSocket & socket
);
Creates the RawSocket with the SocketImpl from another socket.
RawSocket
RawSocket(
SocketAddress::Family family,
int proto = IPPROTO_RAW
);
Creates an unconnected raw socket.
The socket will be created for the given address family.
RawSocket
RawSocket(
const SocketAddress & address,
bool reuseAddress = false
);
Creates a raw socket and binds it to the given address.
Depending on the address family, the socket will be either an IPv4 or an IPv6 socket.
RawSocket
RawSocket(
SocketImpl * pImpl
);
Creates the Socket and attaches the given SocketImpl. The socket takes ownership of the SocketImpl.
The SocketImpl must be a RawSocketImpl, otherwise an InvalidArgumentException will be thrown.
Destructor
~RawSocket
~RawSocket() override;
Destroys the RawSocket.
Member Functions
bind
void bind(
const SocketAddress & address,
bool reuseAddress = false
);
Bind a local address to the socket.
This is usually only done when establishing a server socket.
If reuseAddress is true, sets the SO_REUSEADDR socket option.
bind
void bind(
const SocketAddress & address,
bool reuseAddress,
bool reusePort
);
Bind a local address to the socket.
This is usually only done when establishing a server socket.
If reuseAddress is true, sets the SO_REUSEADDR socket option.
If reusePort is true, sets the SO_REUSEPORT socket option.
connect
void connect(
const SocketAddress & address
);
Restricts incoming and outgoing packets to the specified address.
getBroadcast
bool getBroadcast() const;
Returns the value of the SO_BROADCAST socket option.
operator =
RawSocket & operator = (
const Socket & socket
);
Assignment operator.
Releases the socket's SocketImpl and attaches the SocketImpl from the other socket and increments the reference count of the SocketImpl.
operator =
RawSocket & operator = (
const RawSocket & socket
);
Assignment operator.
Releases the socket's SocketImpl and attaches the SocketImpl from the other socket and increments the reference count of the SocketImpl.
receiveBytes
int receiveBytes(
void * buffer,
int length,
int flags = 0
);
Receives data from the socket and stores it in buffer. Up to length bytes are received.
Returns the number of bytes received.
receiveFrom
int receiveFrom(
void * buffer,
int length,
SocketAddress & address,
int flags = 0
);
Receives data from the socket and stores it in buffer. Up to length bytes are received. Stores the address of the sender in address.
Returns the number of bytes received.
sendBytes
int sendBytes(
const void * buffer,
int length,
int flags = 0
);
Sends the contents of the given buffer through the socket.
Returns the number of bytes sent, which may be less than the number of bytes specified.
sendTo
int sendTo(
const void * buffer,
int length,
const SocketAddress & address,
int flags = 0
);
Sends the contents of the given buffer through the socket to the given address.
Returns the number of bytes sent, which may be less than the number of bytes specified.
setBroadcast
void setBroadcast(
bool flag
);
Sets the value of the SO_BROADCAST socket option.
Setting this flag allows sending datagrams to the broadcast address.