mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=119182077
This commit is contained in:
parent
92ac270ce5
commit
e5d028c425
1 changed files with 24 additions and 0 deletions
|
|
@ -25,6 +25,7 @@ import java.net.DatagramSocket;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.MulticastSocket;
|
import java.net.MulticastSocket;
|
||||||
|
import java.net.SocketException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A UDP {@link DataSource}.
|
* A UDP {@link DataSource}.
|
||||||
|
|
@ -51,8 +52,14 @@ public final class UdpDataSource implements DataSource {
|
||||||
*/
|
*/
|
||||||
public static final int DEFAULT_MAX_PACKET_SIZE = 2000;
|
public static final int DEFAULT_MAX_PACKET_SIZE = 2000;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default socket timeout, in milliseconds.
|
||||||
|
*/
|
||||||
|
public static final int DEAFULT_SOCKET_TIMEOUT_MILLIS = 8 * 1000;
|
||||||
|
|
||||||
private final TransferListener listener;
|
private final TransferListener listener;
|
||||||
private final DatagramPacket packet;
|
private final DatagramPacket packet;
|
||||||
|
private final int socketTimeoutMillis;
|
||||||
|
|
||||||
private Uri uri;
|
private Uri uri;
|
||||||
private DatagramSocket socket;
|
private DatagramSocket socket;
|
||||||
|
|
@ -76,7 +83,18 @@ public final class UdpDataSource implements DataSource {
|
||||||
* @param maxPacketSize The maximum datagram packet size, in bytes.
|
* @param maxPacketSize The maximum datagram packet size, in bytes.
|
||||||
*/
|
*/
|
||||||
public UdpDataSource(TransferListener listener, int maxPacketSize) {
|
public UdpDataSource(TransferListener listener, int maxPacketSize) {
|
||||||
|
this(listener, maxPacketSize, DEAFULT_SOCKET_TIMEOUT_MILLIS);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param listener An optional listener.
|
||||||
|
* @param maxPacketSize The maximum datagram packet size, in bytes.
|
||||||
|
* @param socketTimeoutMillis The socket timeout in milliseconds. A timeout of zero is interpreted
|
||||||
|
* as an infinite timeout.
|
||||||
|
*/
|
||||||
|
public UdpDataSource(TransferListener listener, int maxPacketSize, int socketTimeoutMillis) {
|
||||||
this.listener = listener;
|
this.listener = listener;
|
||||||
|
this.socketTimeoutMillis = socketTimeoutMillis;
|
||||||
packetBuffer = new byte[maxPacketSize];
|
packetBuffer = new byte[maxPacketSize];
|
||||||
packet = new DatagramPacket(packetBuffer, 0, maxPacketSize);
|
packet = new DatagramPacket(packetBuffer, 0, maxPacketSize);
|
||||||
}
|
}
|
||||||
|
|
@ -101,6 +119,12 @@ public final class UdpDataSource implements DataSource {
|
||||||
throw new UdpDataSourceException(e);
|
throw new UdpDataSourceException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
socket.setSoTimeout(socketTimeoutMillis);
|
||||||
|
} catch (SocketException e) {
|
||||||
|
throw new UdpDataSourceException(e);
|
||||||
|
}
|
||||||
|
|
||||||
opened = true;
|
opened = true;
|
||||||
if (listener != null) {
|
if (listener != null) {
|
||||||
listener.onTransferStart();
|
listener.onTransferStart();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue