public abstract class TransportService extends Object
Транспортная служба является конкретным подклассом этого class, который имеет конструктора нулевого параметра и реализует абстрактные методы, определенные ниже. Это - базовая служба, используемая a Transport
для соединений между отладчиком и целевым VM.
Транспортная служба используется, чтобы установить соединение между отладчиком и целевым VM, и транспортировать Протокол Провода Отладки Java (JDWP) пакеты по базовому протоколу связи. В основном реализация транспортной службы связывает JDWP (как определено в спецификации JDWP) к базовому протоколу связи. Реализация транспортной службы предоставляет надежную пакетную услугу транспортировки JDWP. Пакеты JDWP отправляются и от целевого VM без потери данных или дублирования. Реализация транспортной службы может быть основана на базовом протоколе связи, который надежен или ненадежен. Если базовый протокол связи надежен тогда, реализация транспортной службы может быть относительно проста и, возможно, только должна транспортировать пакеты JDWP как полезные нагрузки базового протокола связи. В случае ненадежного протокола связи реализация транспортной службы может включать дополнительную поддержку протокола, чтобы гарантировать, что пакеты не дублируются и что нет никакой потери данных. Детали таких протоколов являются определенными для реализации, но могут включить методы, такие как положительное подтверждение с методом повторной передачи, используемым в протоколах, таких как протокол TCP (TCP) (см.
Транспортная служба может использоваться, чтобы инициировать соединение с целевым VM. Это делается, вызывая attach(java.lang.String, long, long)
метод. Альтернативно, транспортная служба может слушать и принять соединения, инициируемые целевым VM. Это делается, вызывая startListening(String)
метод, чтобы поместить транспорт в слушает режим. Затем accept(com.sun.jdi.connect.spi.TransportService.ListenKey, long, long)
метод используется, чтобы принять соединение, инициируемое целевым VM.
Модификатор и Тип | Класс и Описание |
---|---|
static class |
TransportService. Возможности
Возможности транспортной службы.
|
static class |
TransportService. ListenKey
Слушать ключ.
|
Конструктор и Описание |
---|
TransportService() |
Модификатор и Тип | Метод и Описание |
---|---|
abstract Connection |
accept(TransportService.ListenKey listenKey, long acceptTimeout, long handshakeTimeout)
Примите соединение от целевого VM.
|
abstract Connection |
attach(String address, long attachTimeout, long handshakeTimeout)
Присоединяет к указанному адресу.
|
abstract TransportService.Capabilities |
capabilities()
Возвращает возможности транспортной службы.
|
abstract String |
description()
Возвращает описание транспортной службы.
|
abstract String |
name()
Возвращает имя, чтобы идентифицировать транспортную службу.
|
abstract TransportService.ListenKey |
startListening()
Слушает на адресе choosen транспортной службой.
|
abstract TransportService.ListenKey |
startListening(String address)
Слушает на указанном адресе для входящих соединений.
|
abstract void |
stopListening(TransportService.ListenKey listenKey)
Прекратите прислушиваться к входящим соединениям.
|
public abstract String name()
public abstract String description()
public abstract TransportService.Capabilities capabilities()
public abstract Connection attach(String address, long attachTimeout, long handshakeTimeout) throws IOException
Присоединяет к указанному адресу и возвращает соединение, представляющее двунаправленный канал связи целевому VM.
Присоединение к целевому VM включает два шага: Во-первых, соединение устанавливается к указанному адресу. Это сопровождается квитированием, чтобы гарантировать, что соединение к целевому VM. Квитирование включает обмен строковым JDWP-квитированием как определено в спецификации Протокола Провода Отладки Java.
address
- Адрес целевого VM.attachTimeout
- Если эта транспортная служба поддерживает присоединить тайм-аут, и если attachTimeout положителен, то это определяет тайм-аут, в миллисекундах (более или менее), чтобы использовать, присоединяя к целевому VM. Если транспортная служба не поддерживает присоединить тайм-аут, или если attachTimeout определяется, поскольку нуль тогда присоединяет без любого тайм-аута.handshakeTimeout
- Если эта транспортная служба поддерживает тайм-аут квитирования, и если handshakeTimeout положителен, то это определяет тайм-аут, в миллисекундах (более или менее), чтобы использовать когда квитирование с целевым VM. Точное использование тайм-аута является определенным для транспортной службы. Транспортная служба может, например, использовать тайм-аут квитирования в качестве межсимвольного тайм-аута, ожидая сообщения JDWP-квитирования от целевого VM. Альтернативно, транспортная служба может, например, использовать handshakeTimeout в качестве тайм-аута для продолжительности обмена квитирования. Если транспортная служба не поддерживает тайм-аут квитирования, или если handshakeTimeout определяется как нуль тогда, квитирование не делает тайм-аута, если нет ответа от целевого VM.TransportTimeoutException
- Если тайм-аут происходит, устанавливая соединение.IOException
- Если ошибка ввода-вывода происходит (включая тайм-аут когда квитирование).IllegalArgumentException
- Если адрес недопустим или значение присоединить тайм-аута, или тайм-аут квитирования отрицателен.TransportService.Capabilities.supportsAttachTimeout()
public abstract TransportService.ListenKey startListening(String address) throws IOException
Этот метод запускает транспортную службу, слушающую на указанном адресе так, чтобы это могло впоследствии принять входящее соединение. Это не ожидает, пока входящее соединение не устанавливается.
address
- Адрес, чтобы начать прислушиваться к соединениям, или null, чтобы слушать на адресе choosen транспортной службой.accept
или stopListening
методы.IOException
- Если ошибка ввода-вывода происходит.IllegalArgumentException
- Если определенный адрес недопустимpublic abstract TransportService.ListenKey startListening() throws IOException
Этот метод удобства работает как будто, вызывая startListening(null)
.
accept
или stopListening
методы.IOException
- Если ошибка ввода-вывода происходит.public abstract void stopListening(TransportService.ListenKey listenKey) throws IOException
Вызов этого метода, в то время как другой поток блокируется в accept
, с тем же самым слушают ключ, ожидая, чтобы признать, что соединение заставит тот поток бросать IOException. Если поток, блокированный в, принимает, уже принял соединение от целевого VM и находится в процессе квитирования с целевым VM, тогда вызывающим этот метод, не будет заставлять поток выдавать исключение.
listenKey
- Слушать ключ получается из предыдущего звонка startListening(String)
или startListening()
.IllegalArgumentException
- Если слушать ключ недопустимIOException
- Если ошибка ввода-вывода происходит.public abstract Connection accept(TransportService.ListenKey listenKey, long acceptTimeout, long handshakeTimeout) throws IOException
Ожидает (неопределенно или с тайм-аутом), чтобы принять соединение от целевого VM. Возвращает соединение, представляющее двунаправленный канал связи целевому VM.
Принятие соединения от целевого VM включает два шага. Во-первых, транспортная служба ожидает, чтобы принять соединение от целевого VM. Как только соединение устанавливается, квитирование выполняется, чтобы гарантировать, что соединение действительно к целевому VM. Квитирование включает обмен строковым JDWP-квитированием как определено в спецификации Протокола Провода Отладки Java.
listenKey
- Слушать ключ получается из предыдущего звонка startListening(String)
или startListening()
.acceptTimeout
- если эта транспортная служба поддерживает принять тайм-аут, и если acceptTimeout положителен, тогда блокируют для до миллисекунд acceptTimeout, более или менее, ожидая целевого VM, чтобы соединиться. Если транспортная служба не поддерживает принять тайм-аут или если acceptTimeout является нулем, тогда блокируют неопределенно для целевого VM, чтобы соединиться.handshakeTimeout
- Если эта транспортная служба поддерживает тайм-аут квитирования, и если handshakeTimeout положителен, то это определяет тайм-аут, в миллисекундах (более или менее), чтобы использовать когда квитирование с целевым VM. Точное использование тайм-аута является определенным для транспортной службы. Транспортная служба может, например, использовать тайм-аут квитирования в качестве межсимвольного тайм-аута, ожидая сообщения JDWP-квитирования от целевого VM. Альтернативно, транспортная служба может, например, использовать тайм-аут в качестве тайм-аута для продолжительности обмена квитирования. Если транспортная служба не поддерживает тайм-аут квитирования, того, если handshakeTimeout определяется как нуль тогда, квитирование не делает тайм-аута, если нет ответа от целевого VM.TransportTimeoutException
- Если тайм-аут происходит, ожидая целевого VM, чтобы соединиться.IOException
- Если ошибка ввода-вывода происходит (включая тайм-аут когда квитирование).IllegalArgumentException
- Если значение acceptTimeout параметра, или handshakeTimeout отрицательно, или недопустимое слушают, ключ обеспечивается.IllegalStateException
- Если stopListening
был уже вызван с этим, слушают, ключ и транспортная служба больше не прислушиваются к входящим соединениям.TransportService.Capabilities.supportsAcceptTimeout()
Авторское право © 1999, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92