нл:: Инет:: TCPEndPoint

#include <src/inet/TCPEndPoint.h>

Объекты этого класса представляют конечные точки транспорта TCP.

Краткое содержание

Nest Inet Layer инкапсулирует методы взаимодействия с конечными точками транспорта TCP (сокетами SOCK_STREAM в системах на базе Linux и BSD) или блоками управления протоколом TCP LwIP, если система настроена соответствующим образом.

Наследование

Наследуется от: nl::Inet::EndPointBasis

Публичные типы

@10 {
kState_Ready = kBasisState_Closed,
kState_Bound = 1,
kState_Listening = 2,
kState_Connecting = 3,
kState_Connected = 4,
kState_SendShutdown = 5,
kState_ReceiveShutdown = 6,
kState_Closing = 7,
kState_Closed = 8
}
перечисление
Базовое динамическое состояние базовой конечной точки.
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) определение типа
void(*
Тип функции обработки событий ошибки принятия соединения.
OnConnectCompleteFunct )(TCPEndPoint *endPoint, INET_ERROR err) определение типа
void(*
Тип функции обработки событий установления соединения.
OnConnectionClosedFunct )(TCPEndPoint *endPoint, INET_ERROR err) определение типа
void(*
Тип функции обработки событий установления соединения.
OnConnectionReceivedFunct )(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) определение типа
void(*
Тип соединения получил функцию обработки событий.
OnDataReceivedFunct )(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) определение типа
void(*
Тип функции обработки событий приема данных.
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) определение типа
void(*
Тип функции обработки событий передачи данных.
OnPeerCloseFunct )(TCPEndPoint *endPoint) определение типа
void(*
Тип функции обработки событий полузакрытого приема.
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) определение типа
void(*
Тип TCP SendIdle изменил функцию обработки сигнала.

Публичные атрибуты

OnAcceptError
Делегат функции обработки событий принятия соединения конечной точки.
OnConnectComplete
Делегат функции обработки событий установления соединения конечной точки.
OnConnectionClosed
Делегат функции обработки событий закрытия конечной точки.
OnConnectionReceived
Соединение конечной точки получает делегат функции обработки событий.
OnDataReceived
Делегат функции обработки события приема текста сообщения конечной точки.
OnDataSent
Делегат функции обработки события передачи текста сообщения конечной точки.
OnPeerClose
Делегат функции обработки событий полузакрытия конечной точки.
OnTCPSendIdleChanged
Делегат функции обработки событий, сигнализирующий конечной точке при изменении простоя канала отправки TCP-соединения.
ReceiveEnabled
bool
Переключатель управления, указывающий, получает ли приложение данные.
State
enum nl::Inet::TCPEndPoint::@10
Базовое динамическое состояние базовой конечной точки.

Общественные функции

Abort (void)
void
Прервать закрытие конечной точки, другими словами, отправить пакеты RST.
AckReceive (uint16_t len)
Подтвердите получение текста сообщения.
Bind (IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
Привяжите конечную точку к IP-адресу интерфейса.
Close (void)
Инициировать полное закрытие TCP, другими словами, завершить как отправку, так и получение.
Connect ( IPAddress addr, uint16_t port, InterfaceId intf)
Инициируйте TCP-соединение.
DisableKeepAlive (void)
Отключите опцию TCP «поддерживать активность».
DisableReceive (void)
void
Отключить прием.
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount)
Включите опцию TCP «поддерживать активность».
EnableNoDelay (void)
ВключитьNoDelay.
EnableReceive (void)
void
Включите прием.
Free (void)
void
Инициировать (или продолжить) полное закрытие TCP, игнорируя ошибки.
GetLocalInfo ( IPAddress *retAddr, uint16_t *retPort)
Извлеките IP-адрес и TCP-порт локальной конечной точки.
GetPeerInfo ( IPAddress *retAddr, uint16_t *retPort) const
Извлеките IP-адрес и TCP-порт удаленной конечной точки.
IsConnected (void) const
bool
Извлеките, установлено ли TCP-соединение.
Listen (uint16_t backlog)
Подготовьте конечную точку для приема TCP-сообщений.
LogId (void)
uint16_t
Получите идентификатор конечной точки.
MarkActive (void)
void
Другими словами, обратите внимание на активность, сброс таймера простоя.
PendingReceiveLength (void)
uint32_t
Извлеките длину неподтвержденных полученных данных.
PendingSendLength (void)
uint32_t
Извлеките длину данных, ожидающих первой передачи.
PutBackReceivedData ( Weave::System::PacketBuffer *data)
Отправьте текст сообщения обратно в начало очереди приема.
Send ( Weave::System::PacketBuffer *data, bool push)
Отправить текст сообщения по TCP-соединению.
SetConnectTimeout (const uint32_t connTimeoutMsecs)
void
Установите тайм-аут для успешного подключения Connect или возврата ошибки.
SetUserTimeout (uint32_t userTimeoutMillis)
Установите параметр сокета TCP TCP_USER_TIMEOUT.
Shutdown (void)
Инициация TCP наполовину закрыта, другими словами, завершена отправка.

Публичные типы

@10

 @10

Базовое динамическое состояние базовой конечной точки.

Объекты инициализируются в состоянии «готовность», переходят к последующим состояниям, соответствующим упрощению состояний конечного автомата транспорта TCP.

Примечание. Перечисление состояний kBasisState_Closed сопоставлено с kState_Ready по историческим причинам двоичной совместимости. Существующий kState_Closed существует для отдельного определения различия между «еще не открыто» и «ранее открыто, теперь закрыто», которое существовало ранее в состояниях kState_Ready и kState_Closed .

Характеристики
kState_Bound

Конечная точка привязана, но не прослушивается.

kState_Closed

Конечная точка закрыта и готова к выпуску.

kState_Closing

Конечная точка закрывается в двух направлениях.

kState_Connected

Конечная точка подключена и готова к передаче/приему.

kState_Connecting

Конечная точка пытается подключиться.

kState_Listening

Получающие соединения конечной точки.

kState_Ready

Конечная точка инициализирована, но не привязана.

kState_ReceiveShutdown

Конечная точка ответила на полузакрытие.

kState_SendShutdown

Конечная точка начала полузакрытие.

OnAcceptErrorFunct

void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)

Тип функции обработки событий ошибки принятия соединения.

Предоставьте функцию этого типа члену делегата OnAcceptError для обработки событий ошибки принятия соединения на endPoint . Аргумент err предоставляет конкретную информацию о типе ошибки.

Подробности
Параметры
[in] endPoint
Конечная точка TCP, связанная с событием.
[in] err
Причина ошибки.

Онконнекткомплетефункт

void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)

Тип функции обработки событий установления соединения.

Предоставьте функцию этого типа члену делегата OnConnectComplete для обработки событий установления соединения на endPoint . Аргумент err отличает успешные соединения от неудачных.

Подробности
Параметры
[in] endPoint
Конечная точка TCP, связанная с событием.
[in] err
INET_NO_ERROR в случае успеха, иначе другой код.

OnConnectionClosedFunct

void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)

Тип функции обработки событий установления соединения.

Предоставьте функцию этого типа члену делегата OnConnectionClosed для обработки событий завершения соединения на endPoint . Аргумент err отличает успешное завершение от неудачного.

Подробности
Параметры
[in] endPoint
Конечная точка TCP, связанная с событием.
[in] err
INET_NO_ERROR в случае успеха, иначе другой код.

OnConnectionReceivedFunct

void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)

Тип соединения получил функцию обработки событий.

Предоставьте функцию этого типа члену делегата OnConnectionReceived для обработки событий приема соединения на listeningEndPoint . Вновь полученная конечная точка conEndPoint расположена по IP-адресу peerAddr и TCP-порту peerPort .

Подробности
Параметры
[in] listeningEndPoint
Прослушивающая конечная точка TCP.
[in] conEndPoint
Недавно полученная конечная точка TCP.
[in] peerAddr
IP-адрес удаленного узла.
[in] peerPort
TCP-порт удаленного узла.

OnDataReceivedFunct

void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)

Тип функции обработки событий приема данных.

Предоставьте функцию этого типа члену делегата OnDataReceived для обработки событий приема данных в endPoint где data — это полученный текст сообщения.

Подробности
Параметры
[in] endPoint
Конечная точка TCP, связанная с событием.
[in] data
Данные получены.

Обработчик событий приема данных должен подтвердить обработку данных с помощью метода AckReceive . Также необходимо вызвать метод Free для буфера данных, если вместо него не используется PutBackReceivedData .

Ондатасентфункт

void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)

Тип функции обработки событий передачи данных.

Предоставьте функцию этого типа члену делегата OnDataSent для обработки событий передачи данных в endPoint , где len — это длина текста сообщения, добавленного в окно передачи TCP, которое имеет право на отправку базовым сетевым стеком.

Подробности
Параметры
[in] endPoint
Конечная точка TCP, связанная с событием.
[in] len
Количество байтов, добавленных в окно передачи.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

Тип функции обработки событий полузакрытого приема.

Предоставьте функцию этого типа члену делегата OnPeerClose для обработки событий завершения соединения на endPoint .

Подробности
Параметры
[in] endPoint
Конечная точка TCP, связанная с событием.

ОнTCPSendIdleChangedFunct

void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)

Тип TCP SendIdle изменил функцию обработки сигнала.

Предоставьте функцию этого типа члену делегата OnTCPSendIdleChanged для обработки события канала отправки TCPEndPoint , меняющего состояние между состоянием ожидания и неактивности.

Подробности
Параметры
[in] endPoint
Конечная точка TCP, связанная с событием.
[in] isIdle
Истина, если канал отправки конечной точки TCP свободен, в противном случае — ложь.

Публичные атрибуты

OnAcceptError

OnAcceptErrorFunct OnAcceptError

Делегат функции обработки событий принятия соединения конечной точки.

ОнКоннектКомплете

OnConnectCompleteFunct OnConnectComplete

Делегат функции обработки событий установления соединения конечной точки.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

Делегат функции обработки событий закрытия конечной точки.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

Соединение конечной точки получает делегат функции обработки событий.

OnDataReceived

OnDataReceivedFunct OnDataReceived

Делегат функции обработки события приема текста сообщения конечной точки.

Ондатасент

OnDataSentFunct OnDataSent

Делегат функции обработки события передачи текста сообщения конечной точки.

OnPeerClose

OnPeerCloseFunct OnPeerClose

Делегат функции обработки событий полузакрытия конечной точки.

ОнTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

Делегат функции обработки событий, сигнализирующий конечной точке при изменении простоя канала отправки TCP-соединения.

Это используется верхними уровнями для принятия соответствующих мер в зависимости от того, были ли отправленные данные надежно доставлены одноранговому узлу.

Получение включено

bool ReceiveEnabled

Переключатель управления, указывающий, получает ли приложение данные.

Состояние

enum nl::Inet::TCPEndPoint::@10 State

Базовое динамическое состояние базовой конечной точки.

Объекты инициализируются в состоянии «готовность», переходят к последующим состояниям, соответствующим упрощению состояний конечного автомата транспорта TCP.

Примечание. Перечисление состояний kBasisState_Closed сопоставлено с kState_Ready по историческим причинам двоичной совместимости. Существующий kState_Closed существует для отдельного определения различия между «еще не открыто» и «ранее открыто, теперь закрыто», которое существовало ранее в состояниях kState_Ready и kState_Closed .

Общественные функции

Прервать

void Abort(
  void
)

Прервать закрытие конечной точки, другими словами, отправить пакеты RST.

Подтверждение получения

INET_ERROR AckReceive(
  uint16_t len
)

Подтвердите получение текста сообщения.

Используйте этот метод для подтверждения приема всех или части полученных данных. Операционная семантика не определена, если len больше, чем общее количество ожидающих неподтвержденных полученных данных.

Подробности
Параметры
[in] len
количество байтов для подтверждения.
Возвращаемые значения
INET_NO_ERROR
успех: прием подтвержден.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.
INET_ERROR_CONNECTION_ABORTED
TCP-соединение больше не открывается.

Связывать

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  uint16_t port,
  bool reuseAddr
)

Привяжите конечную точку к IP-адресу интерфейса.

Привязывает конечную точку к указанному IP-адресу сетевого интерфейса.

Подробности
Параметры
[in] addrType
версия протокола IP-адреса
[in] addr
IP-адрес (должен быть адресом интерфейса)
[in] port
TCP-порт
[in] reuseAddr
возможность поделиться привязкой с другими конечными точками
Возвращаемые значения
INET_NO_ERROR
успех: конечная точка привязана к адресу
INET_ERROR_INCORRECT_STATE
конечная точка была привязана ранее
INET_NO_MEMORY
недостаточно памяти для конечной точки
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType не соответствует IPVer .
INET_ERROR_WRONG_ADDRESS_TYPE
addrTypekIPAddressType_Any , или тип addr не равен addrType .
other
другая ошибка системы или платформы

В LwIP этот метод нельзя вызывать с уже полученной блокировкой стека LwIP.

Закрывать

INET_ERROR Close(
  void
)

Инициировать полное закрытие TCP, другими словами, завершить как отправку, так и получение.

Подробности
Возвращаемые значения
INET_NO_ERROR
успех: адрес и порт извлечены.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.
other
другая ошибка системы или платформы

Соединять

INET_ERROR Connect(
  IPAddress addr,
  uint16_t port,
  InterfaceId intf
)

Инициируйте TCP-соединение.

 If possible, then this method initiates a TCP connection to the
 destination \c addr (with \c intf used as the scope
 identifier for IPv6 link-local destinations) and \c port.

Подробности
Параметры
[in] addr
IP-адрес назначения
[in] port
TCP-порт назначения
[in] intf
дополнительный индикатор сетевого интерфейса
Возвращаемые значения
INET_NO_ERROR
успех: msg поставлено в очередь для передачи.
INET_ERROR_NOT_IMPLEMENTED
реализация системы не завершена.
INET_ERROR_WRONG_ADDRESS_TYPE
адрес назначения и адрес связанного интерфейса не имеют совпадающих версий протокола или типа адреса, или адрес назначения является локальным адресом канала IPv6 и intf не указан.
other
другая ошибка системы или платформы

ОтключитьKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

Отключите опцию TCP «поддерживать активность».

TCPEndPoint::DisableKeepAlive .

Отключите проверки активности TCP в соответствующем TCP-соединении.

Подробности
Возвращаемые значения
INET_NO_ERROR
успех: адрес и порт извлечены.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.
INET_ERROR_CONNECTION_ABORTED
TCP-соединение больше не открывается.
INET_ERROR_NOT_IMPLEMENTED
реализация системы не завершена.
other
другая ошибка системы или платформы

Примечание. Этот метод можно вызвать только тогда, когда конечная точка находится в одном из подключенных состояний. Этот метод ничего не делает, если на конечной точке не включены проверки активности.

Отключить получение

void DisableReceive(
  void
)

Отключить прием.

Отключите все обработчики событий. Данные, отправленные в конечную точку, которая отключает прием, будут подтверждаться до тех пор, пока не будет исчерпано окно приема.

ВключитьKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

Включите опцию TCP «поддерживать активность».

TCPEndPoint::EnableKeepAlive .

Начать автоматическую передачу сегментов проверки активности TCP каждые interval секунд. Соединение будет автоматически прервано после получения отрицательного ответа или после отправки тестовых сегментов timeoutCount без получения положительного ответа.

Подробности
Параметры
[in] interval
время в секундах между зондирующими запросами.
[in] timeoutCount
количество зондов для отправки до истечения времени ожидания.
Возвращаемые значения
INET_NO_ERROR
успех: адрес и порт извлечены.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.
INET_ERROR_CONNECTION_ABORTED
TCP-соединение больше не открывается.
INET_ERROR_NOT_IMPLEMENTED
реализация системы не завершена.
other
другая ошибка системы или платформы

Подробности спецификации см. в RFC 1122, раздел 4.2.3.6.

Включите проверки активности TCP для соответствующего TCP-соединения.

Примечание. Этот метод можно вызвать только тогда, когда конечная точка находится в одном из подключенных состояний. Этот метод можно вызывать несколько раз, чтобы настроить интервал поддержки активности или счетчик времени ожидания.

Подробности
Параметры
interval
Интервал (в секундах) между проверками активности. Это значение также контролирует время между отправкой последнего пакета данных и передачей первого теста проверки активности.
timeoutCount
Максимальное количество неподтвержденных тестов, прежде чем соединение будет считаться неудачным.

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

ВключитьNoDelay.

TCPEndPoint::EnableNoDelay .

Отключите алгоритм буферизации Nagle в TCP, установив параметры сокета TCP_NODELAY.

Включитьполучение

void EnableReceive(
  void
)

Включите прием.

Включите все обработчики событий. Данные, отправленные в конечную точку, которая отключает прием, будут подтверждаться до тех пор, пока не будет исчерпано окно приема.

Бесплатно

void Free(
  void
)

Инициировать (или продолжить) полное закрытие TCP, игнорируя ошибки.

Объект возвращается в свободный пул, и все оставшиеся пользовательские ссылки впоследствии становятся недействительными.

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

Извлеките IP-адрес и TCP-порт локальной конечной точки.

Не используйте значения указателя NULL для любого аргумента.

Подробности
Параметры
[out] retAddr
IP-адрес локальной конечной точки.
[out] retPort
TCP-порт локальной конечной точки.
Возвращаемые значения
INET_NO_ERROR
успех: адрес и порт извлечены.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.
INET_ERROR_CONNECTION_ABORTED
TCP-соединение больше не открывается.

GetPeerInfo

INET_ERROR GetPeerInfo(
  IPAddress *retAddr,
  uint16_t *retPort
) const 

Извлеките IP-адрес и TCP-порт удаленной конечной точки.

Не используйте значения указателя NULL для любого аргумента.

Подробности
Параметры
[out] retAddr
IP-адрес удаленной конечной точки.
[out] retPort
TCP-порт удаленной конечной точки.
Возвращаемые значения
INET_NO_ERROR
успех: адрес и порт извлечены.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.
INET_ERROR_CONNECTION_ABORTED
TCP-соединение больше не открывается.

IsConnected

bool IsConnected(
  void
) const 

Извлеките, установлено ли TCP-соединение.

Слушать

INET_ERROR Listen(
  uint16_t backlog
)

Подготовьте конечную точку для приема TCP-сообщений.

Если State уже kState_Listening , то никакая операция не выполняется, в противном случае State устанавливается на kState_Listening , и конечная точка готовится к получению TCP-сообщений в соответствии с семантикой платформы.

Подробности
Параметры
[in] backlog
максимальная глубина очереди приема соединений
Возвращаемые значения
INET_NO_ERROR
успех: конечная точка готова принимать сообщения.
INET_ERROR_INCORRECT_STATE
конечная точка уже прослушивает.

На некоторых платформах аргумент backlog не используется (глубина очереди фиксирована, одновременно может быть принято только одно соединение).

В системах LwIP этот метод нельзя вызывать с уже полученной блокировкой стека LwIP.

Логид

uint16_t LogId(
  void
)

Получите идентификатор конечной точки.

Подробности
Возврат
Возвращает непрозрачный уникальный идентификатор для журналов использования.

МаркАктив

void MarkActive(
  void
)

Другими словами, обратите внимание на активность, сброс таймера простоя.

Сбросьте таймер простоя на ноль.

Ожидание получения длины

uint32_t PendingReceiveLength(
  void
)

Извлеките длину неподтвержденных полученных данных.

Подробности
Возврат
Количество байтов в очереди приема, которые еще не были подтверждены с помощью AckReceive(uint16_t len) .

Ожидание отправки длины

uint32_t PendingSendLength(
  void
)

Извлеките длину данных, ожидающих первой передачи.

Подробности
Возврат
Количество непереданных байтов в очереди передачи.

PutBackReceivedData

INET_ERROR PutBackReceivedData(
  Weave::System::PacketBuffer *data
)

Отправьте текст сообщения обратно в начало очереди приема.

Этот метод может быть вызван только обработчиками событий приема данных, чтобы поместить неподтвержденную часть данных обратно в очередь приема. Операционная семантика не определена, если вызывающий объект находится вне области действия обработчика событий приема данных, data не являются Weave::System::PacketBuffer предоставленными обработчику, или data не содержат неподтвержденной части, оставшейся после байтов, подтвержденных обработчиком. предшествующий вызов метода AckReceive(uint16_t len) .

Подробности
Параметры
[out] data
Текст сообщения для отправки.
Возвращаемые значения
INET_NO_ERROR
успех: прием подтвержден.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.

Отправлять

INET_ERROR Send(
  Weave::System::PacketBuffer *data,
  bool push
)

Отправить текст сообщения по TCP-соединению.

Метод Weave::System::PacketBuffer::Free вызывается для аргумента data независимо от того, была ли передача успешной или неудачной.

Подробности
Параметры
[out] data
Текст сообщения для отправки.
[out] push
Если true , отправьте немедленно, иначе в очередь.
Возвращаемые значения
INET_NO_ERROR
успех: адрес и порт извлечены.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.

Сетконнекттаймаут

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Установите тайм-аут для успешного подключения Connect или возврата ошибки.

Подробности
Параметры
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

Установите параметр сокета TCP TCP_USER_TIMEOUT.

TCPEndPoint::SetUserTimeout .

Когда значение больше 0, оно определяет максимальное время в миллисекундах, в течение которого переданные данные могут оставаться неподтвержденными, прежде чем TCP принудительно закроет соответствующее соединение. Если значение параметра указано как 0, TCP будет использовать системное значение по умолчанию. Дополнительную информацию см. в RFC 5482.

Подробности
Параметры
[in] userTimeoutMillis
Значение тайм-аута пользователя TCP в миллисекундах.
Возвращаемые значения
INET_NO_ERROR
успех: адрес и порт извлечены.
INET_ERROR_NOT_IMPLEMENTED
реализация системы не завершена.
other
другая ошибка системы или платформы

Установите параметр сокета таймаута пользователя TCP.

Когда значение больше 0, оно определяет максимальное время в миллисекундах, в течение которого переданные данные могут оставаться неподтвержденными, прежде чем TCP принудительно закроет соответствующее соединение. Если значение параметра указано как 0, TCP будет использовать системное значение по умолчанию. Дополнительную информацию см. в RFC 5482.

Примечание. Этот метод можно вызвать только тогда, когда конечная точка находится в одном из подключенных состояний. Этот метод можно вызывать несколько раз, чтобы настроить интервал поддержки активности или счетчик времени ожидания.

Неисправность

INET_ERROR Shutdown(
  void
)

Инициация TCP наполовину закрыта, другими словами, завершена отправка.

Подробности
Возвращаемые значения
INET_NO_ERROR
успех: адрес и порт извлечены.
INET_ERROR_INCORRECT_STATE
TCP-соединение не установлено.
other
другая ошибка системы или платформы