nl::Inet::TCPEndPoint

#include <src/inet/TCPEndPoint.h>

Objekte dieser Klasse stellen TCP-Transportendpunkte dar.

Zusammenfassung

Nest Inet Layer kapselt Methoden für die Interaktion mit TCP-Transportendpunkten (SOCK_STREAM-Sockets auf Linux- und BSD-abgeleiteten Systemen) oder LwIP-TCP-Protokollkontrollblöcken, je nachdem, wie das System entsprechend konfiguriert ist.

Übernahme

Übernimmt von: nl::Inet::EndPointBasis

Öffentliche Typen

@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
Grundlegender dynamischer Zustand des zugrunde liegenden Endpunkts.
OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef.
void(*
Typ der Fehlerbehandlungsfunktion bei Verbindungsannahmefehlern.
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef.
void(*
Typ der Ereignisverarbeitungsfunktion für den Verbindungsaufbau.
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef.
void(*
Typ der Ereignisverarbeitungsfunktion für den Verbindungsaufbau.
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) typedef.
void(*
Typ der Verarbeitungsfunktion für empfangene Ereignisse der Verbindung.
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) typedef.
void(*
Typ der Funktion zur Verarbeitung von Datenempfangsereignissen.
OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len) typedef.
void(*
Typ der Funktion zur Verarbeitung von Datenübertragungsereignissen.
OnPeerCloseFunct)(TCPEndPoint *endPoint) typedef.
void(*
Typ der Verarbeitungsfunktion für halbgeschlossene Empfangsereignisse.
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) typedef.
void(*
Typ der TCP-SendIdle-Funktion zur Signalverarbeitung geändert.

Öffentliche Attribute

OnAcceptError
Der Delegat der Funktion für die Verarbeitung des Verbindungsakzeptanzereignisses des Endpunkts.
OnConnectComplete
Der Funktionsdelegierung für die Verarbeitung von Verbindungsaufbauereignissen des Endpunkts.
OnConnectionClosed
Delegat der Funktion für die Verarbeitung von Schließereignissen des Endpunkts.
OnConnectionReceived
Der Delegate der Verbindung zum Empfangsereignisverarbeitungsfunktions-Funktionsdelegat des Endpunkts.
OnDataReceived
Delegierter für die Verarbeitung von Nachrichtentextempfangsereignissen des Endpunkts als Funktionsdelegat.
OnDataSent
Der Funktionsdelegierung für die Verarbeitung von Nachrichtentextübertragungsereignissen des Endpunkts.
OnPeerClose
Delegierter der Funktion zur Verarbeitung von halbgeschlossenen Empfangsereignissen des Endpunkts.
OnTCPSendIdleChanged
Der Delegierung der Ereignisverarbeitungsfunktion des Endpunkts, der signalisiert, wenn sich die Inaktivität des Sendekanals der TCP-Verbindung ändert.
ReceiveEnabled
bool
Steuerschalter, der angibt, ob die Anwendung Daten empfängt.
State
enum nl::Inet::TCPEndPoint::@10
Grundlegender dynamischer Zustand des zugrunde liegenden Endpunkts.

Öffentliche Funktionen

Abort(void)
void
Endpunkt abrupt schließen, mit anderen Worten, RST-Pakete senden.
AckReceive(uint16_t len)
Empfang des Nachrichtentexts bestätigen.
Bind(IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
Binden Sie den Endpunkt an eine Schnittstellen-IP-Adresse.
Close(void)
Initiieren Sie einen TCP-vollständigen Abschluss, d. h., der Vorgang wird sowohl beim Senden als auch beim Empfangen abgeschlossen.
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
Initiieren Sie eine TCP-Verbindung.
DisableKeepAlive(void)
TCP-Keep-Alive deaktivieren Option.
DisableReceive(void)
void
Empfang deaktivieren.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
TCP-Keep-Alive aktivieren Option.
EnableNoDelay(void)
EnableNoDelay enthalten.
EnableReceive(void)
void
Empfang aktivieren
Free(void)
void
TCP-Vollständiges Schließen initiieren (oder fortsetzen) und Fehler ignorieren
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
Extrahieren Sie die IP-Adresse und den TCP-Port des lokalen Endpunkts.
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
Extrahieren Sie die IP-Adresse und den TCP-Port des Remote-Endpunkts.
IsConnected(void) const
bool
Ermitteln Sie, ob eine TCP-Verbindung hergestellt wurde.
Listen(uint16_t backlog)
Bereiten Sie den Endpunkt für den Empfang von TCP-Nachrichten vor.
LogId(void)
uint16_t
Rufen Sie eine Kennung für den Endpunkt ab.
MarkActive(void)
void
Notieren Sie die Aktivität, d. h. setzen Sie den Inaktivitäts-Timer zurück.
PendingReceiveLength(void)
uint32_t
Extrahieren Sie die Länge der nicht bestätigten Empfangsdaten.
PendingSendLength(void)
uint32_t
Extrahieren Sie die Länge der Daten, die auf die erste Übertragung warten.
PutBackReceivedData(Weave::System::PacketBuffer *data)
Nachrichtentext zurück an den Anfang der Empfangswarteschlange verschieben
Send(Weave::System::PacketBuffer *data, bool push)
Nachrichtentext über TCP-Verbindung senden.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Legen Sie ein Zeitlimit fest, damit Connect erfolgreich ist oder einen Fehler zurückgibt.
SetUserTimeout(uint32_t userTimeoutMillis)
Legen Sie die Socket-Option TCP_USER_TIMEOUT fest.
Shutdown(void)
Initiieren Sie TCP halb nah, d. h., der Sendevorgang ist abgeschlossen.

Öffentliche Typen

@10

 @10

Grundlegender dynamischer Zustand des zugrunde liegenden Endpunkts.

Objekte werden im Status „ready“ (bereit) initialisiert. für eine Vereinfachung der Status der TCP-Transport-Zustandsmaschine zu den nachfolgenden Status.

Hinweis:Die Aufzählung kBasisState_Closed ist aus Gründen der Kompatibilität mit Binärprogrammen kState_Ready zugeordnet. Die vorhandene kState_Closed existiert, um die Unterscheidung zwischen „Noch nicht geöffnet“ separat zu erkennen und „zuvor geöffnet geschlossen" die zuvor in den Zuständen kState_Ready und kState_Closed vorhanden waren.

Attribute
kState_Bound

Endpunkt gebunden, aber hört nicht zu.

kState_Closed

Endpunkt geschlossen, bereit für Release.

kState_Closing

Endpunkt wird bidirektional geschlossen.

kState_Connected

Endpunkt verbunden, bereit für tx/rx.

kState_Connecting

Endpunkt versucht, eine Verbindung herzustellen.

kState_Listening

Endpunkt empfängt Verbindungen.

kState_Ready

Endpunkt initialisiert, aber nicht gebunden.

kState_ReceiveShutdown

Endpunkt hat auf halbes Schließen geantwortet.

kState_SendShutdown

Der Endpunkt hat sein halbes Schließen initiiert.

OnAcceptErrorFunct

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

Typ der Fehlerbehandlungsfunktion bei Verbindungsannahmefehlern.

Stellen Sie dem delegierten OnAcceptError-Mitglied eine Funktion dieses Typs zur Verfügung, um Fehlerereignisse beim Akzeptieren der Verbindung in endPoint zu verarbeiten. Das Argument err liefert bestimmte Details zum Fehlertyp.

Details
Parameter
[in] endPoint
Der mit dem Ereignis verknüpfte TCP-Endpunkt.
[in] err
Der Grund für den Fehler.

OnConnectCompleteFunct

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

Typ der Ereignisverarbeitungsfunktion für den Verbindungsaufbau.

Stellen Sie dem delegierten OnConnectComplete-Mitglied eine Funktion dieses Typs zur Verfügung, um Ereignisse zum Verbindungsaufbau für endPoint zu verarbeiten. Das Argument err unterscheidet erfolgreiche Verbindungen von Fehlern.

Details
Parameter
[in] endPoint
Der mit dem Ereignis verknüpfte TCP-Endpunkt.
[in] err
INET_NO_ERROR bei Erfolg, andernfalls ein anderer Code.

OnConnectionClosedFunct

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

Typ der Ereignisverarbeitungsfunktion für den Verbindungsaufbau.

Stellen Sie dem delegierten OnConnectionClosed-Mitglied eine Funktion dieses Typs zur Verarbeitung von Verbindungsabbrüchen in endPoint zur Verfügung. Das Argument err unterscheidet erfolgreiche Beendigungen von Fehlern.

Details
Parameter
[in] endPoint
Der mit dem Ereignis verknüpfte TCP-Endpunkt.
[in] err
INET_NO_ERROR bei Erfolg, andernfalls ein anderer Code.

OnConnectionReceivedFunct

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

Typ der Verarbeitungsfunktion für empfangene Ereignisse der Verbindung.

Stellen Sie dem delegierten OnConnectionReceived-Mitglied eine Funktion dieses Typs zur Verfügung, um Verbindungsempfangsereignisse für listeningEndPoint zu verarbeiten. Der neu empfangene Endpunkt conEndPoint befindet sich an der IP-Adresse peerAddr und dem TCP-Port peerPort.

Details
Parameter
[in] listeningEndPoint
Den überwachenden TCP-Endpunkt.
[in] conEndPoint
Den neu empfangenen TCP-Endpunkt.
[in] peerAddr
Die IP-Adresse des Remote-Peers.
[in] peerPort
Der TCP-Port des Remote-Peers.

OnDataReceivedFunct

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

Typ der Funktion zur Verarbeitung von Datenempfangsereignissen.

Stellen Sie dem delegierten Mitglied OnDataReceived eine Funktion dieses Typs zur Verfügung, um Datenempfangsereignisse für endPoint zu verarbeiten, wobei data der empfangene Nachrichtentext ist.

Details
Parameter
[in] endPoint
Der mit dem Ereignis verknüpfte TCP-Endpunkt.
[in] data
Die empfangenen Daten.

Ein Event-Handler für den Datenempfang muss die mit der Methode AckReceive verarbeiteten Daten bestätigen. Die Methode Free für den Datenpuffer muss ebenfalls aufgerufen werden, es sei denn, stattdessen wird PutBackReceivedData verwendet.

OnDataSentFunct

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

Typ der Funktion zur Verarbeitung von Datenübertragungsereignissen.

Stellen Sie dem Bevollmächtigtenmitglied OnDataSent eine Funktion dieses Typs zur Verfügung, um Datenübertragungsereignisse in endPoint zu verarbeiten. Dabei ist len die Länge des Nachrichtentexts, der dem TCP-Übertragungsfenster hinzugefügt wird und vom zugrunde liegenden Netzwerkstack gesendet werden kann.

Details
Parameter
[in] endPoint
Der mit dem Ereignis verknüpfte TCP-Endpunkt.
[in] len
Anzahl der Byte, die dem Übertragungsfenster hinzugefügt wurden.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

Typ der Verarbeitungsfunktion für halbgeschlossene Empfangsereignisse.

Stellen Sie dem delegierten OnPeerClose-Mitglied eine Funktion dieses Typs zur Verarbeitung von Verbindungsabbrüchen in endPoint zur Verfügung.

Details
Parameter
[in] endPoint
Der mit dem Ereignis verknüpfte TCP-Endpunkt.

OnTCPSendIdleChangedFunct

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

Typ der TCP-SendIdle-Funktion zur Signalverarbeitung geändert.

Stellen Sie dem delegierten Mitglied OnTCPSendIdleChanged eine Funktion dieses Typs zur Verfügung, um das Ereignis zu verarbeiten, das vom Sendekanal des TCPEndPoint zwischen „Inaktiv“ und „Nicht inaktiv“ wechselt.

Details
Parameter
[in] endPoint
Der mit dem Ereignis verknüpfte TCP-Endpunkt.
[in] isIdle
„True“, wenn der Sendekanal des TCP-Endpunkts inaktiv ist, andernfalls „False“.

Öffentliche Attribute

OnAcceptError

OnAcceptErrorFunct OnAcceptError

Der Delegat der Funktion zur Verarbeitung des Verbindungsannahmeereignisses des Endpunkts.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

Der Funktionsdelegierung für die Verarbeitung von Verbindungsaufbauereignissen des Endpunkts.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

Delegat der Funktion für die Verarbeitung von Schließereignissen des Endpunkts.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

Der Delegate der Verbindung zum Empfangsereignisverarbeitungsfunktions-Funktionsdelegat des Endpunkts.

OnDataReceived

OnDataReceivedFunct OnDataReceived

Delegierter für die Verarbeitung von Nachrichtentextempfangsereignissen des Endpunkts als Funktionsdelegat.

OnDataSent

OnDataSentFunct OnDataSent

Der Funktionsdelegierung für die Verarbeitung von Nachrichtentextübertragungsereignissen des Endpunkts.

OnPeerClose

OnPeerCloseFunct OnPeerClose

Delegierter der Funktion zur Verarbeitung von halbgeschlossenen Empfangsereignissen des Endpunkts.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

Der Delegierung der Ereignisverarbeitungsfunktion des Endpunkts, der signalisiert, wenn sich die Inaktivität des Sendekanals der TCP-Verbindung ändert.

Dies wird von den oberen Schichten genutzt, um entsprechende Aktionen durchzuführen, je nachdem, ob die gesendeten Daten zuverlässig an den Peer zugestellt wurden.

ReceiveEnabled

bool ReceiveEnabled

Steuerschalter, der angibt, ob die Anwendung Daten empfängt.

Status

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

Grundlegender dynamischer Zustand des zugrunde liegenden Endpunkts.

Objekte werden im Status „ready“ (bereit) initialisiert. für eine Vereinfachung der Status der TCP-Transport-Zustandsmaschine zu den nachfolgenden Status.

Hinweis:Die Aufzählung kBasisState_Closed ist aus Gründen der Kompatibilität mit Binärprogrammen kState_Ready zugeordnet. Die vorhandene kState_Closed existiert, um die Unterscheidung zwischen „Noch nicht geöffnet“ separat zu erkennen und „zuvor geöffnet geschlossen" die zuvor in den Zuständen kState_Ready und kState_Closed vorhanden waren.

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Endpunkt abrupt schließen, mit anderen Worten, RST-Pakete senden.

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

Empfang des Nachrichtentexts bestätigen.

Verwenden Sie diese Methode, um den Empfang aller oder eines Teils der empfangenen Daten zu bestätigen. Die operative Semantik ist nicht definiert, wenn len größer ist als die Gesamtzahl der ausstehenden nicht bestätigten empfangenen Daten.

Details
Parameter
[in] len
Anzahl der zu bestätigenden Byte.
Rückgabewerte
INET_NO_ERROR
Erfolg: Empfang anerkannt.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
INET_ERROR_CONNECTION_ABORTED
TCP-Verbindung nicht mehr geöffnet.

Binden

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

Binden Sie den Endpunkt an eine Schnittstellen-IP-Adresse.

Bindet den Endpunkt an die angegebene IP-Adresse der Netzwerkschnittstelle.

Details
Parameter
[in] addrType
die Protokollversion der IP-Adresse
[in] addr
die IP-Adresse (muss eine Schnittstellenadresse sein)
[in] port
TCP-Port
[in] reuseAddr
Option zum Freigeben der Bindung für andere Endpunkte
Rückgabewerte
INET_NO_ERROR
Erfolg: Endpunkt ist an Adresse gebunden
INET_ERROR_INCORRECT_STATE
Endpunkt wurde zuvor gebunden
INET_NO_MEMORY
Nicht genügend Arbeitsspeicher für den Endpunkt
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType stimmt nicht mit IPVer überein.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType ist kIPAddressType_Any oder der Typ von addr ist nicht gleich addrType.
other
anderer System- oder Plattformfehler

Bei LwIP darf diese Methode nicht mit der bereits erhaltenen LwIP-Stack-Sperre aufgerufen werden.

Schließen

INET_ERROR Close(
  void
)

Initiieren Sie einen TCP-vollständigen Abschluss, d. h., der Vorgang wird sowohl beim Senden als auch beim Empfangen abgeschlossen.

Details
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
other
anderer System- oder Plattformfehler

Verbinden

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

Initiieren Sie eine TCP-Verbindung.

 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.

Details
Parameter
[in] addr
die Ziel-IP-Adresse
[in] port
TCP-Zielport
[in] intf
eine optionale Anzeige für die Netzwerkschnittstelle
Rückgabewerte
INET_NO_ERROR
Erfolg: msg wurde zur Übertragung in die Warteschlange gestellt.
INET_ERROR_NOT_IMPLEMENTED
Systemimplementierung nicht abgeschlossen.
INET_ERROR_WRONG_ADDRESS_TYPE
Die Zieladresse und die Adresse der gebundenen Schnittstelle haben keine übereinstimmenden Protokollversionen oder keinen übereinstimmenden Adresstyp, oder die Zieladresse ist eine Link-Local-IPv6-Adresse und intf ist nicht angegeben.
other
anderer System- oder Plattformfehler

DisableKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

TCP-Keep-Alive deaktivieren Option.

TCPEndPoint::DisableKeepAlive.

Deaktivieren Sie TCP-Keepalive-Prüfungen für die verknüpfte TCP-Verbindung.

Details
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
INET_ERROR_CONNECTION_ABORTED
TCP-Verbindung nicht mehr geöffnet.
INET_ERROR_NOT_IMPLEMENTED
Systemimplementierung nicht abgeschlossen.
other
anderer System- oder Plattformfehler

Hinweis:Diese Methode kann nur aufgerufen werden, wenn der Endpunkt einen der verbundenen Status hat. Diese Methode hat keine Auswirkungen, wenn Keepalives auf dem Endpunkt nicht aktiviert sind.

DisableReceive

void DisableReceive(
  void
)

Empfang deaktivieren.

Deaktivieren Sie alle Event-Handler. Daten, die an einen Endpunkt gesendet werden, der den Empfang deaktiviert, werden bestätigt, bis das Empfangsfenster abgelaufen ist.

EnableKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

TCP-Keep-Alive aktivieren Option.

TCPEndPoint::EnableKeepAlive.

TCP-„Keep-Alive“ automatisch übertragen Prüfungssegmente alle interval Sekunden. Die Verbindung wird nach Erhalt einer negativen Antwort oder nach dem Senden von timeoutCount Prüfungssegmenten ohne positive Antwort automatisch abgebrochen.

Details
Parameter
[in] interval
Zeit in Sekunden zwischen Prüfungsanfragen.
[in] timeoutCount
Anzahl der zu sendenden Prüfungen, bevor das Zeitlimit überschritten wird.
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
INET_ERROR_CONNECTION_ABORTED
TCP-Verbindung nicht mehr geöffnet.
INET_ERROR_NOT_IMPLEMENTED
Systemimplementierung nicht abgeschlossen.
other
anderer System- oder Plattformfehler

Spezifikationsdetails finden Sie in RFC 1122, Abschnitt 4.2.3.6.

Aktivieren Sie TCP-Keepalive-Prüfungen für die verknüpfte TCP-Verbindung.

Hinweis:Diese Methode kann nur aufgerufen werden, wenn der Endpunkt einen der verbundenen Status hat. Diese Methode kann mehrmals aufgerufen werden, um das Keepalive-Intervall oder die Zeitüberschreitungsanzahl anzupassen.

Details
Parameter
interval
Das Intervall (in Sekunden) zwischen Keepalive-Prüfungen. Mit diesem Wert wird auch die Zeit zwischen dem letzten gesendeten Datenpaket und der Übertragung der ersten Keepalive-Prüfung gesteuert.
timeoutCount
Die maximale Anzahl nicht bestätigter Prüfungen, bis die Verbindung als fehlgeschlagen gilt.

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

EnableNoDelay enthalten.

TCPEndPoint::EnableNoDelay

Deaktivieren Sie den Nagle-Pufferalgorithmus in TCP, indem Sie die Socket-Optionen TCP_NO später festlegen.

EnableReceive

void EnableReceive(
  void
)

Empfang aktivieren

Alle Event-Handler aktivieren. Daten, die an einen Endpunkt gesendet werden, der den Empfang deaktiviert, werden bestätigt, bis das Empfangsfenster abgelaufen ist.

Kostenlos

void Free(
  void
)

TCP-Vollständiges Schließen initiieren (oder fortsetzen) und Fehler ignorieren

Das Objekt wird an den kostenlosen Pool zurückgegeben und alle verbleibenden Nutzerverweise sind ungültig.

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

Extrahieren Sie die IP-Adresse und den TCP-Port des lokalen Endpunkts.

Verwenden Sie für keines der Argumente NULL-Zeigerwerte.

Details
Parameter
[out] retAddr
IP-Adresse des lokalen Endpunkts.
[out] retPort
TCP-Port des lokalen Endpunkts.
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
INET_ERROR_CONNECTION_ABORTED
TCP-Verbindung nicht mehr geöffnet.

GetPeerInfo

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

Extrahieren Sie die IP-Adresse und den TCP-Port des Remote-Endpunkts.

Verwenden Sie für keines der Argumente NULL-Zeigerwerte.

Details
Parameter
[out] retAddr
IP-Adresse des Remote-Endpunkts.
[out] retPort
TCP-Port des Remote-Endpunkts.
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
INET_ERROR_CONNECTION_ABORTED
TCP-Verbindung nicht mehr geöffnet.

IsConnected

bool IsConnected(
  void
) const 

Ermitteln Sie, ob eine TCP-Verbindung hergestellt wurde.

Anhören

INET_ERROR Listen(
  uint16_t backlog
)

Bereiten Sie den Endpunkt für den Empfang von TCP-Nachrichten vor.

Wenn State bereits kState_Listening ist, wird kein Vorgang ausgeführt. Andernfalls wird State auf kState_Listening gesetzt und der Endpunkt kann gemäß der Semantik der Plattform TCP-Nachrichten empfangen.

Details
Parameter
[in] backlog
Maximale Tiefe der Warteschlange für Verbindungsakzeptanz
Rückgabewerte
INET_NO_ERROR
Erfolg: Endpunkt ist zum Empfangen von Nachrichten bereit.
INET_ERROR_INCORRECT_STATE
Endpunkt überwacht bereits.

Auf einigen Plattformen wird das Argument backlog nicht verwendet. Die Tiefe der Warteschlange ist unveränderlich und es kann jeweils nur eine Verbindung akzeptiert werden.

Bei LwIP-Systemen darf diese Methode nicht mit der bereits erhaltenen LwIP-Stack-Sperre aufgerufen werden

LogId

uint16_t LogId(
  void
)

Rufen Sie eine Kennung für den Endpunkt ab.

Details
Rückgabe
Gibt eine intransparente eindeutige Kennung für Nutzungslogs zurück.

MarkActive

void MarkActive(
  void
)

Notieren Sie die Aktivität, d. h. setzen Sie den Inaktivitäts-Timer zurück.

Inaktivitäts-Timer auf null zurücksetzen.

PendingReceiveLength

uint32_t PendingReceiveLength(
  void
)

Extrahieren Sie die Länge der nicht bestätigten Empfangsdaten.

Details
Rückgabe
Anzahl der Byte in der Empfangswarteschlange, die noch nicht mit AckReceive(uint16_t len) bestätigt wurden.

PendingSendLength

uint32_t PendingSendLength(
  void
)

Extrahieren Sie die Länge der Daten, die auf die erste Übertragung warten.

Details
Rückgabe
Anzahl der nicht übertragenen Byte in der Übertragungswarteschlange.

PutBackReceivedData

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

Nachrichtentext zurück an den Anfang der Empfangswarteschlange verschieben

Diese Methode kann nur von Ereignis-Handlern für den Datenempfang aufgerufen werden, um einen nicht bestätigten Teil der Daten wieder in die Empfangswarteschlange zu verschieben. Die operative Semantik ist nicht definiert, wenn sich der Aufrufer außerhalb des Geltungsbereichs eines Datenempfangs-Event-Handlers befindet, data nicht der Weave::System::PacketBuffer ist, der dem Handler zur Verfügung gestellt wird, oder data nicht den unbestätigten Teil enthält, der nach den Byte verbleibt, die durch einen vorherigen Aufruf der AckReceive(uint16_t len)-Methode bestätigt wurden.

Details
Parameter
[out] data
Zu übertragender Nachrichtentext.
Rückgabewerte
INET_NO_ERROR
Erfolg: Empfang anerkannt.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.

Senden

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

Nachrichtentext über TCP-Verbindung senden.

Die Methode Weave::System::PacketBuffer::Free wird für das Argument data aufgerufen, unabhängig davon, ob die Übertragung erfolgreich ist oder fehlgeschlagen ist.

Details
Parameter
[out] data
Zu sendender SMS-Text.
[out] push
Bei true sofort senden, andernfalls in die Warteschlange stellen.
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Legen Sie ein Zeitlimit fest, damit Connect erfolgreich ist oder einen Fehler zurückgibt.

Details
Parameter
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

Legen Sie die Socket-Option TCP_USER_TIMEOUT fest.

TCPEndPoint::SetUserTimeout

Wenn der Wert größer als 0 ist, gibt er die maximale Zeit in Millisekunden an, die übertragene Daten unbestätigt bleiben können, bevor TCP die entsprechende Verbindung zwangsweise schließt. Wenn der Optionswert mit 0 angegeben wird, verwendet TCP den Systemstandard. Weitere Informationen finden Sie unter RFC 5482.

Details
Parameter
[in] userTimeoutMillis
Tcp-Nutzerzeitlimit-Wert in Millisekunden.
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_NOT_IMPLEMENTED
Systemimplementierung nicht abgeschlossen.
other
anderer System- oder Plattformfehler

Legen Sie die Socket-Option für das TCP-Nutzerzeitlimit fest.

Wenn der Wert größer als 0 ist, gibt er die maximale Zeit in Millisekunden an, die übertragene Daten unbestätigt bleiben können, bevor TCP die entsprechende Verbindung zwangsweise schließt. Wenn der Optionswert mit 0 angegeben wird, verwendet TCP den Systemstandard. Weitere Informationen finden Sie unter RFC 5482.

Hinweis:Diese Methode kann nur aufgerufen werden, wenn der Endpunkt einen der verbundenen Status hat. Diese Methode kann mehrmals aufgerufen werden, um das Keepalive-Intervall oder die Zeitüberschreitungsanzahl anzupassen.

Herunterfahren

INET_ERROR Shutdown(
  void
)

Initiieren Sie TCP halb nah, d. h., der Sendevorgang ist abgeschlossen.

Details
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
other
anderer System- oder Plattformfehler