openshot-audio
0.1.6
|
#include <juce_Socket.h>
Public Member Functions | |
DatagramSocket (bool enableBroadcasting=false) | |
~DatagramSocket () | |
bool | bindToPort (int localPortNumber) |
bool | bindToPort (int localPortNumber, const String &localAddress) |
int | getBoundPort () const noexcept |
int | getRawSocketHandle () const noexcept |
int | waitUntilReady (bool readyForReading, int timeoutMsecs) const |
int | read (void *destBuffer, int maxBytesToRead, bool blockUntilSpecifiedAmountHasArrived) |
int | read (void *destBuffer, int maxBytesToRead, bool blockUntilSpecifiedAmountHasArrived, String &senderIPAddress, int &senderPortNumber) |
int | write (const String &remoteHostname, int remotePortNumber, const void *sourceBuffer, int numBytesToWrite) |
bool | joinMulticast (const String &multicastIPAddress) |
bool | leaveMulticast (const String &multicastIPAddress) |
A wrapper for a datagram (UDP) socket.
This allows low-level use of sockets; for an easier-to-use messaging layer on top of sockets, you could also try the InterprocessConnection class.
DatagramSocket::DatagramSocket | ( | bool | enableBroadcasting = false | ) |
Creates a datagram socket.
You first need to bind this socket to a port with bindToPort if you intend to read from this socket.
If enableBroadcasting is true, the socket will be allowed to send broadcast messages (may require extra privileges on linux)
DatagramSocket::~DatagramSocket | ( | ) |
Destructor.
bool DatagramSocket::bindToPort | ( | int | localPortNumber | ) |
Binds the socket to the specified local port.
The localPortNumber is the port on which to bind this socket. If this value is 0, the port number is assigned by the operating system.
Binds the socket to the specified local port and local address.
If localAddress is not an empty string then the socket will be bound to localAddress as well. This is useful if you would like to bind your socket to a specific network adapter. Note that localAddress must be an IP address assigned to one of your network address otherwise this function will fail.
|
noexcept |
Returns the local port number to which this socket is currently bound.
This is useful if you need to know to which port the OS has actually bound your socket when bindToPort was called with zero.
Returns -1 if the socket didn't bind to any port yet or an error occured.
|
inlinenoexcept |
Returns the OS's socket handle that's currently open.
Join a multicast group
Leave a multicast group
int DatagramSocket::read | ( | void * | destBuffer, |
int | maxBytesToRead, | ||
bool | blockUntilSpecifiedAmountHasArrived | ||
) |
Reads bytes from the socket.
If blockUntilSpecifiedAmountHasArrived is true, the method will block until maxBytesToRead bytes have been read, (or until an error occurs). If this flag is false, the method will return as much data as is currently available without blocking.
int DatagramSocket::read | ( | void * | destBuffer, |
int | maxBytesToRead, | ||
bool | blockUntilSpecifiedAmountHasArrived, | ||
String & | senderIPAddress, | ||
int & | senderPortNumber | ||
) |
Reads bytes from the socket and return the IP address of the sender.
If blockUntilSpecifiedAmountHasArrived is true, the method will block until maxBytesToRead bytes have been read, (or until an error occurs). If this flag is false, the method will return as much data as is currently available without blocking.
int DatagramSocket::waitUntilReady | ( | bool | readyForReading, |
int | timeoutMsecs | ||
) | const |
Waits until the socket is ready for reading or writing.
If readyForReading is true, it will wait until the socket is ready for reading; if false, it will wait until it's ready for writing.
If the timeout is < 0, it will wait forever, or else will give up after the specified time.
If the socket is ready on return, this returns 1. If it times-out before the socket becomes ready, it returns 0. If an error occurs, it returns -1.
int DatagramSocket::write | ( | const String & | remoteHostname, |
int | remotePortNumber, | ||
const void * | sourceBuffer, | ||
int | numBytesToWrite | ||
) |
Writes bytes to the socket from a buffer.
Note that this method will block unless you have checked the socket is ready for writing before calling it (see the waitUntilReady() method).