Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface SocketOptions
Методы и константы, которые определяют опции в этом интерфейсе, для реализации только. Если Вы не разделите на подклассы SocketImpl или DatagramSocketImpl, то Вы не будете использовать их непосредственно. Есть безопасные с точки зрения типов методы, чтобы получить/установить каждую из этих опций в Сокете, ServerSocket, DatagramSocket и MulticastSocket.
Модификатор и Тип | Поле и Описание |
---|---|
static int |
IP_MULTICAST_IF
Набор, который исходящий интерфейс, в котором можно отправить многоадресные пакеты.
|
static int |
IP_MULTICAST_IF2
То же самое как выше.
|
static int |
IP_MULTICAST_LOOP
Эта опция включает или отключает локальную обратную петлю многоадресных дейтаграмм.
|
static int |
IP_TOS
Эта опция устанавливает тип службы или поле класса трафика в заголовке IP для сокета UDP или TCP.
|
static int |
SO_BINDADDR
Выберите локальную привязку адреса сокета (эта опция не может быть "установлена" только "полученная", так как сокеты связываются во время создания, и таким образом, локально связанный адрес не может быть изменен).
|
static int |
SO_BROADCAST
Наборы SO_BROADCAST для сокета.
|
static int |
SO_KEEPALIVE
Когда keepalive опция устанавливается для сокета TCP, и никакие данные не передавались через сокет ни в одном направлении в течение 2 часов (ПРИМЕЧАНИЕ: фактическое значение является зависящим от реализации), TCP автоматически отправляет зонд keepalive коллеге.
|
static int |
SO_LINGER
Определите, что тайм-аут "задерживается на завершении".
|
static int |
SO_OOBINLINE
Когда опция OOBINLINE будет установлена, любой TCP, срочные данные, полученные на сокете, будут получены через входной поток сокета.
|
static int |
SO_RCVBUF
Установите подсказку размер базовых буферов, используемых платформой для входящего сетевого ввода-вывода.
|
static int |
SO_REUSEADDR
Наборы SO_REUSEADDR для сокета.
|
static int |
SO_SNDBUF
Установите подсказку размер базовых буферов, используемых платформой для исходящего сетевого ввода-вывода.
|
static int |
SO_TIMEOUT
Установите тайм-аут при блокировании операций Сокета:
|
static int |
TCP_NODELAY
Отключите алгоритм Нэйгла для этого соединения.
|
static final int TCP_NODELAY
Допустимый для TCP только: SocketImpl.
static final int SO_BINDADDR
Эта опция должна быть определена в конструкторе.
Допустимый для: SocketImpl, DatagramSocketImpl
static final int SO_REUSEADDR
Допустимый для: DatagramSocketImpl
static final int SO_BROADCAST
static final int IP_MULTICAST_IF
Допустимый для Многоадресной передачи: DatagramSocketImpl
static final int IP_MULTICAST_IF2
MulticastSocket.setNetworkInterface(NetworkInterface)
, MulticastSocket.getNetworkInterface()
, Постоянные Значения полейstatic final int IP_MULTICAST_LOOP
static final int IP_TOS
static final int SO_LINGER
Допустимый только для TCP: SocketImpl
static final int SO_TIMEOUT
ServerSocket.accept(); SocketInputStream.read(); DatagramSocket.receive();
Опция должна быть установлена до ввода работы блокирования, чтобы вступить в силу. Если бы тайм-аут истекает, и работа продолжала бы блокировать, java.io. InterruptedIOException повышается. Сокет не закрывается в этом случае.
Допустимый для всех сокетов: SocketImpl, DatagramSocketImpl
static final int SO_SNDBUF
static final int SO_RCVBUF
static final int SO_KEEPALIVE
static final int SO_OOBINLINE
void setOption(int optID, Object value) throws SocketException
SocketImpl s; ... s.setOption(SO_LINGER, new Integer(10)); // OK - set SO_LINGER w/ timeout of 10 sec. s.setOption(SO_LINGER, new Double(10)); // ERROR - expects java.lang.IntegerЕсли требуемая опция является двоичной, она может быть установлена, используя этот метод java.lang. Булевская переменная:
s.setOption(TCP_NODELAY, new Boolean(true)); // OK - enables TCP_NODELAY, a binary option
s.setOption(TCP_NODELAY, new Boolean(false)); // OK - disables TCP_NODELAY s.setOption(SO_LINGER, new Boolean(false)); // OK - disables SO_LINGER
optID
- идентифицирует опциюvalue
- параметр опции сокетаSocketException
- если опция является нераспознанной, сокет закрывается, или некоторая низкоуровневая ошибка произошлаgetOption(int)
Object getOption(int optID) throws SocketException
SocketImpl s; ... Boolean noDelay = (Boolean)(s.getOption(TCP_NODELAY)); if (noDelay.booleanValue()) { // true if TCP_NODELAY is enabled... ... }
Для опций, которые берут определенный тип в качестве параметра, getOption (интервал), возвратит значение параметра, еще это возвратит java.lang. Булевская переменная (ложь):
Object o = s.getOption(SO_LINGER); if (o instanceof Integer) { System.out.print("Linger time is " + ((Integer)o).intValue()); } else { // the true type of o is java.lang.Boolean(false); }
optID
- int
идентификация опции, чтобы выбратьSocketException
- если сокет закрываетсяSocketException
- если optID неизвестен вдоль стека протокола (включая SocketImpl)setOption(int, java.lang.Object)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.