IInternetConnectionEndPoint: различия между версиями
(Новая страница: «{{IInternetConnectionEndPoint_brief}} {{IInternetConnectionEndPoint methods|Собственные методы}}») |
|||
Строка 1: | Строка 1: | ||
{{ | {{interface|IInternetConnectionEndPoint}} | ||
Интерфейс реализуется точкой доступа к удаленной стороне, соединение с которой устанавливается по некоторому интернет-протоколу [https://en.wikipedia.org/wiki/Transport_layer транспортного уровня OSI]. | |||
{{ | Реализация точки доступа агрегирует некоторые реализации накопителей последовательных данных, которые, в свою очередь, реализуют интерфейс [[IConsequentDataStorage]]. Доступ к такой реализации осуществляется вызовом метода [[IInternetConnectionEndPoint::GetConnectionHandler|GetConnectionHandler]]. | ||
[[Файл:IInternetConnectionEndPoint-relations.png|800px|thumb|right|Отношения интерфейса [[IInternetConnectionEndPoint]]. На рисунке предполагается использование байтового интернет-протокола, этим обусловлена поддержка байтовых потоков ввода-вывода [[IInternetConnectionInputByteStream]] и [[IInternetConnectionOutputByteStream]]. Если реализация опирается не на байт-ориентированный транспортный протокол, а, например, на гипертекстовый протокол, поддержка байтовых потоков может отсутствовать: данная ситуация показана на рисунке серыми пунктирными стрелками.]] | |||
То, на каком этапе устанавливается соединение, определяется реализацией точки доступа. | |||
Для создания точек доступа по протоколу TCP используются функции [[CreateTCPServer]] и [[CreateMultipointTCPServer]] (для создания сервера) и [[CreateTCPClient]] для создания клиента. Соединение устанавливается при первом чтении или записи клиентом в потоки [[IInputByteStream]] или [[IOutputByteStream]] соответственно. | |||
Для доступа к потокам чтения и записи используется интерфейс [[IConsequentDataStorage]], получаемый с помощью метода [[IInternetConnectionEndPoint::GetConnectionHandler|GetConnectionHandler]], и его методы [[IConsequentDataStorage::Read|Read]] и [[IConsequentDataStorage::Write|Write]]. Для получения более конкретного интерфейса потока используется метод [[IStream::RepresentAs]], наследуемый интерфейсами [[IInputStream]] и [[IOutputStream]], реализация которых получается с помощью методов [[IConsequentDataStorage::Read]] и [[IConsequentDataStorage::Write]] соответственно. В частности, для байт-ориентированных протоколов транспортного уровня реализуется поддержка интерфейсов [[IInternetConnectionInputByteStream]] и [[IInternetConnectionOutputByteStream]] для чтения и записи байт соответственно. | |||
Для языка C++ существуют [[Адаптер программного интерфейса|адаптеры]] [[InternetConnectionEndPointRef]] и [[InternetConnectionEndPointOwn]], которые облегчают использование точек доступа, реализуя методы, на которые отображены методы интерфейса [[IInternetConnectionEndPoint]]. | |||
{{sa_list_begin}} | |||
{{sa_list_add|IConsequentDataStorage}} | |||
{{sa_list_add|IInternetConnectionInputByteStream}} | |||
{{sa_list_add|IInternetConnectionOutputByteStream}} | |||
{{sa_list_add|InternetConnectionEndPointRef}} | |||
{{sa_list_add|InternetConnectionEndPointOwn}} | |||
{{sa_list_end}} |
Текущая версия на 21:04, 19 августа 2019
Точка доступа к удаленному узлу.
Метод | Описание |
---|---|
AddRef | Инкрементирует счетчик ссылок на реализацию. |
GetConnectionHandler | Возвращает агрегируемую реализацию методов интерфейса IConsequentDataStorage, связанную с одним интернет-соединением между двумя сторонами. |
CancelOperations | Прерывает соединение с использованием протокола разрыва, если это возможно, иначе - жестко, и разблокирует любые потоки выполнения, заблокированные доступом к удаленному узлу через связанные с точкой доступа потоки чтения и записи. |
GetStatus | Возвращает статус соединения с удаленными узлами. |
GetOption | Возвращает значение выбранного параметра интернет соединения. |
Класс | Описание |
---|---|
Базовый интерфейс для всех программных интерфейсов. |
Интерфейс реализуется точкой доступа к удаленной стороне, соединение с которой устанавливается по некоторому интернет-протоколу транспортного уровня OSI.
Реализация точки доступа агрегирует некоторые реализации накопителей последовательных данных, которые, в свою очередь, реализуют интерфейс IConsequentDataStorage. Доступ к такой реализации осуществляется вызовом метода GetConnectionHandler.

То, на каком этапе устанавливается соединение, определяется реализацией точки доступа.
Для создания точек доступа по протоколу TCP используются функции CreateTCPServer и CreateMultipointTCPServer (для создания сервера) и CreateTCPClient для создания клиента. Соединение устанавливается при первом чтении или записи клиентом в потоки IInputByteStream или IOutputByteStream соответственно.
Для доступа к потокам чтения и записи используется интерфейс IConsequentDataStorage, получаемый с помощью метода GetConnectionHandler, и его методы Read и Write. Для получения более конкретного интерфейса потока используется метод IStream::RepresentAs, наследуемый интерфейсами IInputStream и IOutputStream, реализация которых получается с помощью методов IConsequentDataStorage::Read и IConsequentDataStorage::Write соответственно. В частности, для байт-ориентированных протоколов транспортного уровня реализуется поддержка интерфейсов IInternetConnectionInputByteStream и IInternetConnectionOutputByteStream для чтения и записи байт соответственно.
Для языка C++ существуют адаптеры InternetConnectionEndPointRef и InternetConnectionEndPointOwn, которые облегчают использование точек доступа, реализуя методы, на которые отображены методы интерфейса IInternetConnectionEndPoint.
- См. также
IConsequentDataStorage Интерфейс для чтения и записи в накопитель последовательно расположенных данных. IInternetConnectionInputByteStream Входной поток байт, связанный с IP-соединением. IInternetConnectionOutputByteStream Выходной поток байт, связанный с IP-соединением. InternetConnectionEndPointRef Ссылочный адаптер, определенный над интерфейсом IInternetConnectionEndPoint. InternetConnectionEndPointOwn Владеющий адаптер, определенный над интерфейсом IInternetConnectionEndPoint.