65 bool bindToPort (
int localPortNumber);
77 bool bindToPort (
int localPortNumber,
const String& localAddress);
85 int getBoundPort()
const noexcept;
95 bool connect (
const String& remoteHostname,
97 int timeOutMillisecs = 3000);
109 int getPort() const noexcept {
return portNumber; }
112 bool isLocal() const noexcept;
115 int getRawSocketHandle() const noexcept {
return handle; }
129 int waitUntilReady (
bool readyForReading,
int timeoutMsecs);
141 int read (
void* destBuffer,
int maxBytesToRead,
142 bool blockUntilSpecifiedAmountHasArrived);
151 int write (
const void* sourceBuffer,
int numBytesToWrite);
167 bool createListener (
int portNumber,
const String& localHostName =
String());
183 std::atomic<int> portNumber { 0 }, handle { -1 };
184 std::atomic<bool> connected {
false };
185 bool isListener =
false;
186 mutable CriticalSection readLock;
188 StreamingSocket (
const String& hostname,
int portNumber,
int handle);
190 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (StreamingSocket)
233 bool bindToPort (
int localPortNumber);
245 bool bindToPort (
int localPortNumber,
const String& localAddress);
253 int getBoundPort()
const noexcept;
270 int waitUntilReady (
bool readyForReading,
int timeoutMsecs);
282 int read (
void* destBuffer,
int maxBytesToRead,
283 bool blockUntilSpecifiedAmountHasArrived);
296 int read (
void* destBuffer,
int maxBytesToRead,
297 bool blockUntilSpecifiedAmountHasArrived,
298 String& senderIPAddress,
int& senderPortNumber);
307 int write (
const String& remoteHostname,
int remotePortNumber,
308 const void* sourceBuffer,
int numBytesToWrite);
328 bool joinMulticast (
const String& multicastIPAddress);
333 bool leaveMulticast (
const String& multicastIPAddress);
338 bool setMulticastLoopbackEnabled (
bool enableLoopback);
349 bool setEnablePortReuse (
bool enabled);
353 std::atomic<int> handle { -1 };
354 bool isBound =
false;
355 String lastBindAddress, lastServerHost;
356 int lastServerPort = -1;
357 void* lastServerAddress =
nullptr;
358 mutable CriticalSection readLock;
360 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DatagramSocket)