nl::Inet::TCPEndPoint

#include <src/inet/TCPEndPoint.h>

Obiekty tej klasy reprezentują punkty końcowe transportu TCP.

Podsumowanie

Nest Inet Layer zawiera metody interakcji z punktami końcowymi transportu TCP (gniazda SOCK_STREAM w systemach Linux i systemach opartych na BSD) lub blokami sterującymi protokołu TCP LwIP, ponieważ system jest odpowiednio skonfigurowany.

Dziedziczenie

Dziedziczy z: nl::Inet::EndPointBasis

Typy publiczne

@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
}
enum | typ wyliczeniowy
Podstawowy stan dynamiczny bazowego punktu końcowego.
OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Typ funkcji obsługi zdarzeń błędu akceptacji połączenia.
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Typ funkcji obsługi zdarzeń nawiązania połączenia.
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Typ funkcji obsługi zdarzeń nawiązania połączenia.
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) typedef
void(*
Typ funkcji obsługi zdarzenia otrzymanego połączenia.
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) typedef
void(*
Typ funkcji obsługi zdarzeń odbioru danych.
OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len) typedef
void(*
Typ funkcji obsługi zdarzeń transmisji danych.
OnPeerCloseFunct)(TCPEndPoint *endPoint) typedef
void(*
Typ funkcji obsługi zdarzeń odbioru pół zamknięcia.
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) typedef
void(*
Typ funkcji obsługi sygnałów TCP SendIdle zmienionej.

Atrybuty publiczne

OnAcceptError
Delegata funkcji obsługi zdarzeń akceptacji połączenia w punkcie końcowym.
OnConnectComplete
Delegata funkcji obsługi zdarzeń nawiązywania połączenia w punkcie końcowym.
OnConnectionClosed
Delegata funkcji obsługi zdarzeń zamknięcia punktu końcowego.
OnConnectionReceived
Połączenie z punktem końcowym otrzymuje delegata funkcji obsługi zdarzeń.
OnDataReceived
Delegata funkcji obsługi zdarzenia odbioru wiadomości w punkcie końcowym.
OnDataSent
Delegacja funkcji obsługi zdarzeń przesyłania tekstu wiadomości w punkcie końcowym.
OnPeerClose
Delegat do funkcji obsługi zdarzeń odbioru w połowie zamknięcia punktu końcowego.
OnTCPSendIdleChanged
Delegat funkcji obsługi zdarzeń sygnalizujący punkt końcowy, gdy zmieni się bezczynność kanału wysyłania połączenia TCP.
ReceiveEnabled
bool
Przełącznik sterujący wskazujący, czy aplikacja odbiera dane.
State
enum nl::Inet::TCPEndPoint::@10
Podstawowy stan dynamiczny bazowego punktu końcowego.

Funkcje publiczne

Abort(void)
void
Nieumyślnie zamknij punkt końcowy, czyli wyślij pakiety RST.
AckReceive(uint16_t len)
Potwierdź odbiór treści wiadomości.
Bind(IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
Powiąż punkt końcowy z adresem IP interfejsu.
Close(void)
Inicjuj pełne zamknięcie TCP, czyli zakończoną zarówno wysyłaniem, jak i odbieraniem.
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
Zainicjuj połączenie TCP.
DisableKeepAlive(void)
Wyłącz opcję utrzymywania aktywności TCP.
DisableReceive(void)
void
Wyłącz odbiór.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
Włącz opcję utrzymywania aktywności TCP.
EnableNoDelay(void)
WłączNoOpóźnienie.
EnableReceive(void)
void
Włącz odbiór.
Free(void)
void
Zainicjuj (lub kontynuuj) pełne zamknięcie TCP, ignorując błędy.
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
Wyodrębnij adres IP i port TCP lokalnego punktu końcowego.
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
Wyodrębnij adres IP i port TCP zdalnego punktu końcowego.
IsConnected(void) const
bool
Sprawdź, czy nawiązano połączenie TCP.
Listen(uint16_t backlog)
Przygotuj punkt końcowy do odbierania komunikatów TCP.
LogId(void)
uint16_t
Uzyskaj identyfikator punktu końcowego.
MarkActive(void)
void
Zanotuj aktywność – czyli zresetuj licznik czasu bezczynności.
PendingReceiveLength(void)
uint32_t
Wyodrębnianie długości niepotwierdzonych danych odbieranych.
PendingSendLength(void)
uint32_t
Wyodrębnij długość danych oczekujących na pierwszą transmisję.
PutBackReceivedData(Weave::System::PacketBuffer *data)
Przekaż tekst wiadomości z powrotem na nagłówek kolejki odbierania.
Send(Weave::System::PacketBuffer *data, bool push)
Wyślij tekst wiadomości przez połączenie TCP.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Ustaw czas oczekiwania, aby nawiązać połączenie lub zwrócić błąd.
SetUserTimeout(uint32_t userTimeoutMillis)
Ustaw opcję gniazda TCP TCP_USER_TIMEOUT.
Shutdown(void)
Inicjowanie połączenia TCP w połowie zamknięcia, czyli zakończenie wysyłania.

Typy publiczne

@10

 @10

Podstawowy stan dynamiczny bazowego punktu końcowego.

Obiekty są inicjowane w stanie „ready” (gotowe). Przejdź do kolejnych stanów odpowiadających uproszczeniu stanów maszyny w stanie transportu TCP.

Uwaga: ze względu na historyczną zgodność plików binarnych wyliczenie stanu kBasisState_Closed zostało zmapowane na wartość kState_Ready. Obecna klasyfikacja kState_Closed wyróżnia rozróżnienie między „jeszcze nieotwartą” a „wcześniej otwartego teraz zamknięte”, które istniało wcześniej w stanach kState_Ready i kState_Closed.

Właściwości
kState_Bound

Punkt końcowy jest powiązany, ale nie nasłuchuje.

kState_Closed

Punkt końcowy jest zamknięty, możesz go opublikować.

kState_Closing

Zamknięcie punktu końcowego dwukierunkowo.

kState_Connected

Punkt końcowy podłączony, gotowy do użycia TX/rx.

kState_Connecting

Próba nawiązania połączenia z punktem końcowym.

kState_Listening

Połączenia odbierające punkt końcowy.

kState_Ready

Punkt końcowy został zainicjowany, ale nie jest powiązany.

kState_ReceiveShutdown

Odpowiedź na „połowę zamknięcia” w punkcie końcowym.

kState_SendShutdown

Punkt końcowy zainicjował pół zamknięcia.

OnAcceptErrorFunct

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

Typ funkcji obsługi zdarzeń błędu akceptacji połączenia.

Udostępnij funkcję tego typu użytkownikowi, który przekazał dostęp do OnAcceptError, w celu przetwarzania zdarzeń błędów akceptowania połączenia endPoint. Argument err zawiera szczegółowe informacje o typie błędu.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy TCP powiązany ze zdarzeniem.
[in] err
Przyczyna błędu.

OnConnectCompleteFunct

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

Typ funkcji obsługi zdarzeń nawiązania połączenia.

Udostępnij funkcję tego typu użytkownikowi, który przekazał dostęp do OnConnectComplete, aby przetwarzać zdarzenia nawiązania połączenia w endPoint. Argument err odróżnia udane połączenia od nieudanych.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy TCP powiązany ze zdarzeniem.
[in] err
INET_NO_ERROR w przypadku powodzenia, a w przeciwnym razie inny kod.

OnConnectionClosedFunct

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

Typ funkcji obsługi zdarzeń nawiązania połączenia.

Udostępnij funkcję tego typu użytkownikowi, który przekazał dostęp do OnConnectionClosed, aby przetworzyć zdarzenia zakończenia połączenia w endPoint. Argument err odróżnia udane zakończenia od niepowodzeń.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy TCP powiązany ze zdarzeniem.
[in] err
INET_NO_ERROR w przypadku powodzenia, a w przeciwnym razie inny kod.

OnConnectionReceivedFunct

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

Typ funkcji obsługi zdarzenia otrzymanego połączenia.

Udostępnij funkcję tego typu członkowi, który przekazał dostęp do OnConnectionReceived, aby mógł przetwarzać zdarzenia odbioru połączenia w systemie listeningEndPoint. Nowo odebrany punkt końcowy conEndPoint znajduje się pod adresem IP peerAddr i portem TCP peerPort.

Szczegóły
Parametry
[in] listeningEndPoint
Nasłuchujący punkt końcowy TCP.
[in] conEndPoint
Nowo odebrany punkt końcowy TCP.
[in] peerAddr
Adres IP zdalnego peera.
[in] peerPort
Port TCP zdalnego peera.

OnDataReceivedFunct

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

Typ funkcji obsługi zdarzeń odbioru danych.

Przekaż funkcję tego typu użytkownikowi, który przekazał dostęp do OnDataReceived, w celu przetwarzania zdarzeń odbioru danych w endPoint, gdzie data to tekst otrzymanej wiadomości.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy TCP powiązany ze zdarzeniem.
[in] data
Odebrane dane.

Moduł obsługi zdarzeń odbioru danych musi potwierdzać dane przetwarzane za pomocą metody AckReceive. Należy też wywołać metodę Free w buforcie danych, chyba że zamiast niej jest używana metoda PutBackReceivedData.

OnDataSentFunct

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

Typ funkcji obsługi zdarzeń transmisji danych.

Udostępnij funkcję tego typu użytkownikowi, który przekazał dostęp do OnDataSent, aby umożliwić przetwarzanie zdarzeń transmisji danych w endPoint, gdzie len to długość tekstu wiadomości dodanego do okna transmisji TCP, które kwalifikuje się do wysyłania przez bazowy stos sieciowy.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy TCP powiązany ze zdarzeniem.
[in] len
Liczba bajtów dodanych do okna transmisji.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

Typ funkcji obsługi zdarzeń odbioru pół zamknięcia.

Udostępnij funkcję tego typu użytkownikowi, który przekazał dostęp do OnPeerClose, aby przetworzyć zdarzenia zakończenia połączenia w endPoint.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy TCP powiązany ze zdarzeniem.

OnTCPSendIdleChangedFunct

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

Typ funkcji obsługi sygnałów TCP SendIdle zmienionej.

Udostępnij funkcję tego typu użytkownikowi, który przekazał dostęp do OnTCPSendIdleChanged, w celu przetworzenia zdarzenia kanału wysyłania punktu końcowego TCPEndPoint, który zmienia stan z nieaktywnego na nieaktywny.

Szczegóły
Parametry
[in] endPoint
Punkt końcowy TCP powiązany ze zdarzeniem.
[in] isIdle
Wartość to „prawda”, jeśli kanał wysyłania punktu końcowego TCP ma wartość Bezczynny. W przeciwnym razie ma wartość fałsz.

Atrybuty publiczne

OnAcceptError

OnAcceptErrorFunct OnAcceptError

Delegata funkcji obsługi zdarzeń akceptacji połączenia w punkcie końcowym.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

Delegata funkcji obsługi zdarzeń nawiązywania połączenia w punkcie końcowym.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

Delegata funkcji obsługi zdarzeń zamknięcia punktu końcowego.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

Połączenie z punktem końcowym otrzymuje delegata funkcji obsługi zdarzeń.

OnDataReceived

OnDataReceivedFunct OnDataReceived

Delegata funkcji obsługi zdarzenia odbioru wiadomości w punkcie końcowym.

OnDataSent

OnDataSentFunct OnDataSent

Delegacja funkcji obsługi zdarzeń przesyłania tekstu wiadomości w punkcie końcowym.

OnPeerClose

OnPeerCloseFunct OnPeerClose

Delegat do funkcji obsługi zdarzeń odbioru w połowie zamknięcia punktu końcowego.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

Delegat funkcji obsługi zdarzeń sygnalizujący punkt końcowy, gdy zmieni się bezczynność kanału wysyłania połączenia TCP.

Jest on używany przez górne warstwy do wykonywania odpowiednich działań w zależności od tego, czy wysłane dane zostały niezawodnie dostarczone do połączenia równorzędnego.

ReceiveEnabled

bool ReceiveEnabled

Przełącznik sterujący wskazujący, czy aplikacja odbiera dane.

Stan

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

Podstawowy stan dynamiczny bazowego punktu końcowego.

Obiekty są inicjowane w stanie „ready” (gotowe). Przejdź do kolejnych stanów odpowiadających uproszczeniu stanów maszyny w stanie transportu TCP.

Uwaga: ze względu na historyczną zgodność plików binarnych wyliczenie stanu kBasisState_Closed zostało zmapowane na wartość kState_Ready. Obecna klasyfikacja kState_Closed wyróżnia rozróżnienie między „jeszcze nieotwartą” a „wcześniej otwartego teraz zamknięte”, które istniało wcześniej w stanach kState_Ready i kState_Closed.

Funkcje publiczne

Przerwij

void Abort(
  void
)

Nieumyślnie zamknij punkt końcowy, czyli wyślij pakiety RST.

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

Potwierdź odbiór treści wiadomości.

Użyj tej metody, aby potwierdzić otrzymanie wszystkich lub części otrzymanych danych. Semantyka operacyjna jest niezdefiniowana, jeśli wartość len jest większa niż łączna liczba oczekujących niepotwierdzonych danych.

Szczegóły
Parametry
[in] len
liczba bajtów do potwierdzenia.
Zwracane wartości
INET_NO_ERROR
sukces: odbiór potwierdzony.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.
INET_ERROR_CONNECTION_ABORTED
Połączenie TCP nie jest już otwarte.

Powiąż

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

Powiąż punkt końcowy z adresem IP interfejsu.

Wiąże punkt końcowy z określonym adresem IP interfejsu sieci.

Szczegóły
Parametry
[in] addrType
wersja protokołu adresu IP
[in] addr
adres IP (musi być adresem interfejsu)
[in] port
port TCP
[in] reuseAddr
opcja udostępniania powiązania z innymi punktami końcowymi
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy powiązany z adresem
INET_ERROR_INCORRECT_STATE
punkt końcowy został wcześniej powiązany
INET_NO_MEMORY
za mało pamięci dla punktu końcowego
INET_ERROR_WRONG_PROTOCOL_TYPE
Pole addrType nie pasuje do wyrażenia IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType ma wartość kIPAddressType_Any lub typ addr nie jest równy addrType.
other
błąd innego systemu lub platformy

W LwIP tej metody nie można wywoływać z zablokowaną blokadą stosu LwIP,

Zamknij

INET_ERROR Close(
  void
)

Inicjuj pełne zamknięcie TCP, czyli zakończoną zarówno wysyłaniem, jak i odbieraniem.

Szczegóły
Zwracane wartości
INET_NO_ERROR
udane: wyodrębniono adres i port.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.
other
błąd innego systemu lub platformy

Połącz

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

Zainicjuj połączenie 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.

Szczegóły
Parametry
[in] addr
docelowy adres IP
[in] port
docelowy port TCP
[in] intf
opcjonalny wskaźnik interfejsu sieci.
Zwracane wartości
INET_NO_ERROR
powodzenie: msg jest w kolejce do transmisji.
INET_ERROR_NOT_IMPLEMENTED
nie ukończono implementacji systemu.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i adres powiązanego interfejsu nie mają pasujących wersji protokołu lub typu adresu albo adres docelowy to adres IPv6 link-lokalny i nie określono adresu intf.
other
błąd innego systemu lub platformy

DisableKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

Wyłącz opcję utrzymywania aktywności TCP.

TCPEndPoint::DisableKeepAlive.

Wyłącz sondy utrzymujące aktywność TCP w powiązanym połączeniu TCP.

Szczegóły
Zwracane wartości
INET_NO_ERROR
udane: wyodrębniono adres i port.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.
INET_ERROR_CONNECTION_ABORTED
Połączenie TCP nie jest już otwarte.
INET_ERROR_NOT_IMPLEMENTED
nie ukończono implementacji systemu.
other
błąd innego systemu lub platformy

Uwaga: tę metodę można wywołać tylko wtedy, gdy punkt końcowy jest w jednym ze stanów połączenia. Ta metoda nie działa, jeśli w punkcie końcowym nie włączono utrzymywania aktywności.

DisableReceive

void DisableReceive(
  void
)

Wyłącz odbiór.

Wyłącz wszystkie moduły obsługi zdarzeń. Dane wysyłane do punktu końcowego, który wyłącza odbiór, będą potwierdzone do czasu zakończenia okresu odbierania.

EnableKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

Włącz opcję utrzymywania aktywności TCP.

TCPEndPoint::EnableKeepAlive

Rozpocznij automatyczne przesyłanie segmentów sond „utrzymujących aktywność” TCP co interval s. Połączenie zostanie przerwane automatycznie po otrzymaniu negatywnej odpowiedzi lub po wysłaniu timeoutCount segmentów sondowania bez uzyskania pozytywnej odpowiedzi.

Szczegóły
Parametry
[in] interval
wyrażony w sekundach czas między żądaniami sond.
[in] timeoutCount
liczba sond do wysłania przed upływem czasu oczekiwania.
Zwracane wartości
INET_NO_ERROR
udane: wyodrębniono adres i port.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.
INET_ERROR_CONNECTION_ABORTED
Połączenie TCP nie jest już otwarte.
INET_ERROR_NOT_IMPLEMENTED
nie ukończono implementacji systemu.
other
błąd innego systemu lub platformy

Szczegóły specyfikacji znajdziesz w specyfikacji RFC 1122 w sekcji 4.2.3.6.

Włącz sondy utrzymujące aktywność TCP na powiązanym połączeniu TCP.

Uwaga: tę metodę można wywołać tylko wtedy, gdy punkt końcowy jest w jednym ze stanów połączenia. Tę metodę można wywoływać wielokrotnie, aby dostosować odstęp czasu utrzymywania aktywności i liczbę limitu czasu.

Szczegóły
Parametry
interval
Odstęp (w sekundach) między sondami utrzymującymi aktywność. Ta wartość kontroluje też czas między ostatnim wysłaniem pakietu danych a wysłaniem pierwszej sondy utrzymującej aktywność.
timeoutCount
Maksymalna liczba niepotwierdzonych sond, zanim połączenie zostanie uznane za nieudane.

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

WłączNoOpóźnienie.

TCPEndPoint::EnableNoOpóźnienie.

Wyłącz algorytm buforowania nagle w TCP, ustawiając opcje gniazda TCP_NOlpurl.

EnableReceive

void EnableReceive(
  void
)

Włącz odbiór.

Włącz wszystkie moduły obsługi zdarzeń. Dane wysyłane do punktu końcowego, który wyłącza odbiór, będą potwierdzone do czasu zakończenia okresu odbierania.

bezpłatnie

void Free(
  void
)

Zainicjuj (lub kontynuuj) pełne zamknięcie TCP, ignorując błędy.

Obiekt jest zwracany do puli bezpłatnej i wszystkie pozostałe odwołania użytkowników stają się nieprawidłowe.

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

Wyodrębnij adres IP i port TCP lokalnego punktu końcowego.

Nie używaj wartości wskaźnika NULL w żadnym z tych argumentów.

Szczegóły
Parametry
[out] retAddr
Adres IP lokalnego punktu końcowego.
[out] retPort
Port TCP lokalnego punktu końcowego.
Zwracane wartości
INET_NO_ERROR
udane: wyodrębniono adres i port.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.
INET_ERROR_CONNECTION_ABORTED
Połączenie TCP nie jest już otwarte.

GetPeerInfo

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

Wyodrębnij adres IP i port TCP zdalnego punktu końcowego.

Nie używaj wartości wskaźnika NULL w żadnym z tych argumentów.

Szczegóły
Parametry
[out] retAddr
Adres IP zdalnego punktu końcowego.
[out] retPort
Port TCP zdalnego punktu końcowego.
Zwracane wartości
INET_NO_ERROR
udane: wyodrębniono adres i port.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.
INET_ERROR_CONNECTION_ABORTED
Połączenie TCP nie jest już otwarte.

IsConnected

bool IsConnected(
  void
) const 

Sprawdź, czy nawiązano połączenie TCP.

Posłuchaj

INET_ERROR Listen(
  uint16_t backlog
)

Przygotuj punkt końcowy do odbierania komunikatów TCP.

Jeśli State ma już wartość kState_Listening, nie jest wykonywana żadna operacja. W przeciwnym razie State ma wartość kState_Listening, a punkt końcowy jest przygotowany do odbierania komunikatów TCP zgodnie ze semantyką platformy.

Szczegóły
Parametry
[in] backlog
maksymalna głębokość kolejki akceptacji połączenia
Zwracane wartości
INET_NO_ERROR
Sukces: punkt końcowy gotowy do odbierania wiadomości.
INET_ERROR_INCORRECT_STATE
punkt końcowy już nasłuchuje.

Na niektórych platformach argument backlog nie jest używany (głębokość kolejki jest stała – w danym momencie może być akceptowane tylko 1 połączenie).

W systemach LwIP tej metody nie można wywoływać z blokadą stosu LwIP,

LogId

uint16_t LogId(
  void
)

Uzyskaj identyfikator punktu końcowego.

Szczegóły
Zwroty
Zwraca nieprzejrzysty unikalny identyfikator logów użycia.

MarkActive

void MarkActive(
  void
)

Zanotuj aktywność – czyli zresetuj licznik czasu bezczynności.

Zresetuj licznik czasu bezczynności do zera.

PendingReceiveLength

uint32_t PendingReceiveLength(
  void
)

Wyodrębnianie długości niepotwierdzonych danych odbieranych.

Szczegóły
Zwroty
Liczba bajtów w kolejce odbierania, które nie zostały jeszcze potwierdzone za pomocą metody AckReceive(uint16_t len).

PendingSendLength

uint32_t PendingSendLength(
  void
)

Wyodrębnij długość danych oczekujących na pierwszą transmisję.

Szczegóły
Zwroty
Liczba nieprzesłanych bajtów w kolejce przesyłania.

PutBackReceivedData

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

Przekaż tekst wiadomości z powrotem na nagłówek kolejki odbierania.

Tę metodę mogą wywoływać tylko moduły obsługi zdarzeń odbioru danych w celu umieszczenia niepotwierdzonej części danych z powrotem w kolejce odbierania. Semantyka operacyjna jest niezdefiniowana, jeśli element wywołujący znajduje się poza zakresem modułu obsługi zdarzeń odbioru danych, element data nie jest elementem Weave::System::PacketBuffer udostępnianym modułu obsługi lub data nie zawiera niepotwierdzonej części pozostałej po bajtach potwierdzonych przez wcześniejsze wywołanie metody AckReceive(uint16_t len).

Szczegóły
Parametry
[out] data
Tekst wiadomości do przekazania.
Zwracane wartości
INET_NO_ERROR
sukces: odbiór potwierdzony.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.

Wyślij

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

Wyślij tekst wiadomości przez połączenie TCP.

Metoda Weave::System::PacketBuffer::Free jest wywoływana dla argumentu data niezależnie od tego, czy przesyłanie się udało.

Szczegóły
Parametry
[out] data
Tekst wiadomości do wysłania.
[out] push
Jeśli ma wartość true, wyślij natychmiast. W przeciwnym razie kolejka.
Zwracane wartości
INET_NO_ERROR
udane: wyodrębniono adres i port.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Ustaw czas oczekiwania, aby nawiązać połączenie lub zwrócić błąd.

Szczegóły
Parametry
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

Ustaw opcję gniazda TCP TCP_USER_TIMEOUT.

TCPEndPoint::SetUserTimeout.

Jeśli wartość jest większa niż 0, określa to maksymalny czas (w milisekundach), przez jaki przesyłane dane mogą pozostać niepotwierdzone, zanim TCP wymusi zamknięcie odpowiedniego połączenia. Jeśli wartość opcji jest określona jako 0, TCP użyje wartości domyślnej systemu. Więcej informacji znajdziesz w dokumencie RFC 5482.

Szczegóły
Parametry
[in] userTimeoutMillis
Wartość limitu czasu użytkownika TCP w milisekundach.
Zwracane wartości
INET_NO_ERROR
udane: wyodrębniono adres i port.
INET_ERROR_NOT_IMPLEMENTED
nie ukończono implementacji systemu.
other
błąd innego systemu lub platformy

Ustaw opcję gniazda limitu czasu użytkownika TCP.

Jeśli wartość jest większa niż 0, określa to maksymalny czas (w milisekundach), przez jaki przesyłane dane mogą pozostać niepotwierdzone, zanim TCP wymusi zamknięcie odpowiedniego połączenia. Jeśli wartość opcji jest określona jako 0, TCP użyje wartości domyślnej systemu. Więcej informacji znajdziesz w dokumencie RFC 5482.

Uwaga: tę metodę można wywołać tylko wtedy, gdy punkt końcowy jest w jednym ze stanów połączenia. Tę metodę można wywoływać wielokrotnie, aby dostosować odstęp czasu utrzymywania aktywności i liczbę limitu czasu.

Wyłączono

INET_ERROR Shutdown(
  void
)

Inicjowanie połączenia TCP w połowie zamknięcia, czyli zakończenie wysyłania.

Szczegóły
Zwracane wartości
INET_NO_ERROR
udane: wyodrębniono adres i port.
INET_ERROR_INCORRECT_STATE
Nie nawiązano połączenia TCP.
other
błąd innego systemu lub platformy