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, wenn 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 Status des zugrunde liegenden Endpunkts.
OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Art der Funktion zur Verarbeitung von Verbindungsakzeptanzfehler-Ereignissen.
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Typ der Funktion zur Verarbeitung des Verbindungsaufbauereignisses.
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Typ der Funktion zur Verarbeitung des Verbindungsaufbauereignisses.
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) typedef
void(*
Typ der Funktion zur Verarbeitung von Verbindungsereignissen.
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) typedef
void(*
Art 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(*
Art der Funktion zur Verarbeitung von halb geschlossenen Empfangsereignissen.
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) typedef
void(*
Der Typ der TCP-Funktion „SendIdle“ hat die Signalverarbeitung geändert.

Öffentliche Attribute

OnAcceptError
Der Funktionsdeleg für die Verarbeitung des Verbindungsannahmeereignisses des Endpunkts.
OnConnectComplete
Der Funktionsdeleg für die Verarbeitung des Verbindungseinrichtungsereignisses des Endpunkts.
OnConnectionClosed
Der Funktionsdelegat für die Verarbeitung von Schließereignissen des Endpunkts.
OnConnectionReceived
Der Funktionsdeleg für die Ereignisverarbeitung für das Empfangsereignis des Endpunkts.
OnDataReceived
Der Funktionsdeleg für die Verarbeitung von Nachrichtentextempfangsereignissen des Endpunkts.
OnDataSent
Der Funktionsdelegat für die Verarbeitung von Nachrichtentextübertragungsereignissen des Endpunkts.
OnPeerClose
Der Delegat der Funktion für die halbgeschlossene Empfangsereignisverarbeitung des Endpunkts.
OnTCPSendIdleChanged
Der Funktionsdeleg für die Ereignisverarbeitung der Endpunktsignalisierung, 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 Status des zugrunde liegenden Endpunkts.

Öffentliche Funktionen

Abort(void)
void
Beenden Sie den Endpunkt vorzeitig, d. h., es werden RST-Pakete gesendet.
AckReceive(uint16_t len)
Empfang des Nachrichtentextes 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 den vollständigen TCP-Abschluss, d. h., er ist sowohl mit Senden als auch mit Empfangen abgeschlossen.
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
Initiieren Sie eine TCP-Verbindung.
DisableKeepAlive(void)
Deaktivieren Sie die TCP-Option „keep-alive“.
DisableReceive(void)
void
Empfang deaktivieren.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
Aktivieren Sie die TCP-Option „keep-alive“.
EnableNoDelay(void)
"EnableNoDelay" ein.
EnableReceive(void)
void
Empfang aktivieren.
Free(void)
void
Initiieren (oder Fortfahren) einer vollständigen TCP-Schließung, wobei Fehler ignoriert werden.
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
IP-Adresse und TCP-Port des lokalen Endpunkts extrahieren.
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
IP-Adresse und TCP-Port des Remote-Endpunkts extrahieren.
IsConnected(void) const
bool
Extrahieren 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
Beachten Sie die Aktivität, also setzen Sie den Timer bei Inaktivität 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)
Verschiebt den Nachrichtentext zurück an den Anfang der Empfangswarteschlange.
Send(Weave::System::PacketBuffer *data, bool push)
Nachrichtentext über TCP-Verbindung senden.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Legen Sie das Zeitlimit für die erfolgreiche Ausführung von Connect oder die Rückgabe eines Fehlers fest.
SetUserTimeout(uint32_t userTimeoutMillis)
Legen Sie die Socket-Option „TCP TCP_USER_TIMEOUT“ fest.
Shutdown(void)
Initiieren Sie TCP halbnah, d. h., das Senden ist abgeschlossen.

Öffentliche Typen

@10

 @10

Grundlegender dynamischer Status des zugrunde liegenden Endpunkts.

Objekte werden im Status „Bereit“ initialisiert. Sie werden zu den nachfolgenden Zuständen fortgesetzt, was einer Vereinfachung der Zustände der TCP-Transportstatusmaschine entspricht.

Hinweis:Die Statusaufzählung kBasisState_Closed wird aus Gründen der Kompatibilität mit Binärprogrammen kState_Ready zugeordnet. Mit der vorhandenen Datei kState_Closed lässt sich separat zwischen „noch nicht geöffnet“ und „zuvor geöffnet und jetzt geschlossen“ unterscheiden, die zuvor in den Status kState_Ready und kState_Closed vorhanden waren.

Attribute
kState_Bound

Endpunktgebunden, wird aber nicht überwacht.

kState_Closed

Endpunkt geschlossen, bereit für die Veröffentlichung.

kState_Closing

Endpunkt wird bidirektional geschlossen.

kState_Connected

Endpunkt verbunden, bereit für tx/rx.

kState_Connecting

Endpunkt, der versucht, eine Verbindung herzustellen.

kState_Listening

Endpunkt, der Verbindungen empfängt.

kState_Ready

Endpunkt initialisiert, aber nicht gebunden.

kState_ReceiveShutdown

Endpunkt hat auf Halbgeschlossen reagiert.

kState_SendShutdown

Der Endpunkt hat einen Halbschluss eingeleitet.

OnAcceptErrorFunct

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

Art der Funktion zur Verarbeitung von Verbindungsakzeptanzfehler-Ereignissen.

Stellen Sie dem delegierten Mitglied von OnAcceptError eine Funktion dieses Typs bereit, um Fehlerereignisse bei der Verbindungsakzeptanz für endPoint zu verarbeiten. Das Argument err liefert spezifische Details zum Fehlertyp.

Details
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] err
Die Ursache des Fehlers.

OnConnectCompleteFunct

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

Typ der Funktion zur Verarbeitung des Verbindungsaufbauereignisses.

Stellen Sie dem Bevollmächtigten OnConnectComplete eine Funktion dieses Typs zur Verfügung, damit Ereignisse zum Verbindungsaufbau in endPoint verarbeitet werden können. Das Argument err unterscheidet erfolgreiche Verbindungen von Fehlern.

Details
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] err
Bei Erfolg INET_NO_ERROR, andernfalls ein anderer Code.

OnConnectionClosedFunct

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

Typ der Funktion zur Verarbeitung des Verbindungsaufbauereignisses.

Stellen Sie dem delegierten Mitglied von OnConnectionClosed eine Funktion dieses Typs zur Verfügung, um Verbindungsabbruchereignisse in endPoint zu verarbeiten. Das Argument err unterscheidet erfolgreiche Beendigungen von Fehlern.

Details
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] err
Bei Erfolg INET_NO_ERROR, andernfalls ein anderer Code.

OnConnectionReceivedFunct

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

Typ der Funktion zur Verarbeitung von Verbindungsereignissen.

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

Details
Parameter
[in] listeningEndPoint
Der überwachende TCP-Endpunkt.
[in] conEndPoint
Der neu empfangene 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)

Art der Funktion zur Verarbeitung von Datenempfangsereignissen.

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

Details
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] data
Die empfangenen Daten.

Ein Ereignis-Handler für den Datenempfang muss Daten bestätigen, die mit der Methode AckReceive verarbeitet wurden. 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 delegierten Mitglied von OnDataSent eine Funktion dieses Typs zur Verfügung, um Datenübertragungsereignisse unter endPoint zu verarbeiten. Dabei ist len die Länge des Nachrichtentexts, der dem TCP-Übertragungsfenster hinzugefügt wurde und vom zugrunde liegenden Netzwerk-Stack gesendet werden kann.

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

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

Art der Funktion zur Verarbeitung von halb geschlossenen Empfangsereignissen.

Stellen Sie dem delegierten Mitglied von OnPeerClose eine Funktion dieses Typs zur Verfügung, um Verbindungsabbruchereignisse in endPoint zu verarbeiten.

Details
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.

OnTCPSendIdleChangedFunct

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

Der Typ der TCP-Funktion „SendIdle“ hat die Signalverarbeitung geändert.

Stellen Sie dem Delegaten OnTCPSendIdleChanged eine Funktion dieses Typs zur Verfügung, damit das Ereignis des Sendekanals von TCPEndPoint verarbeitet werden kann, der den Status zwischen inaktiv und nicht inaktiv ändert.

Details
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] isIdle
„True“, wenn der Sendekanal des TCP-Endpunkts „Inaktiv“ ist, andernfalls „false“.

Öffentliche Attribute

OnAcceptError

OnAcceptErrorFunct OnAcceptError

Der Funktionsdeleg für die Verarbeitung des Verbindungsannahmeereignisses des Endpunkts.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

Der Funktionsdeleg für die Verarbeitung des Verbindungseinrichtungsereignisses des Endpunkts.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

Der Funktionsdelegat für die Verarbeitung von Schließereignissen des Endpunkts.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

Der Funktionsdeleg für die Ereignisverarbeitung für das Empfangsereignis des Endpunkts.

OnDataReceived

OnDataReceivedFunct OnDataReceived

Der Funktionsdeleg für die Verarbeitung von Nachrichtentextempfangsereignissen des Endpunkts.

OnDataSent

OnDataSentFunct OnDataSent

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

OnPeerClose

OnPeerCloseFunct OnPeerClose

Der Delegat der Funktion für die halbgeschlossene Empfangsereignisverarbeitung des Endpunkts.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

Der Funktionsdeleg für die Ereignisverarbeitung der Endpunktsignalisierung, wenn sich die Inaktivität des Sendekanals der TCP-Verbindung ändert.

Dies wird von den oberen Ebenen genutzt, um geeignete Maßnahmen zu ergreifen, je nachdem, ob die gesendeten Daten zuverlässig an den Peer übertragen wurden.

ReceiveEnabled

bool ReceiveEnabled

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

Status

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

Grundlegender dynamischer Status des zugrunde liegenden Endpunkts.

Objekte werden im Status „Bereit“ initialisiert. Sie werden zu den nachfolgenden Zuständen fortgesetzt, was einer Vereinfachung der Zustände der TCP-Transportstatusmaschine entspricht.

Hinweis:Die Statusaufzählung kBasisState_Closed wird aus Gründen der Kompatibilität mit Binärprogrammen kState_Ready zugeordnet. Mit der vorhandenen Datei kState_Closed lässt sich separat zwischen „noch nicht geöffnet“ und „zuvor geöffnet und jetzt geschlossen“ unterscheiden, die zuvor in den Status kState_Ready und kState_Closed vorhanden waren.

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Beenden Sie den Endpunkt vorzeitig, d. h., es werden RST-Pakete gesendet.

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

Empfang des Nachrichtentextes bestätigen.

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

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

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 gebunden an Adresse
INET_ERROR_INCORRECT_STATE
Endpunkt wurde zuvor gebunden
INET_NO_MEMORY
Nicht genügend Arbeitsspeicher für 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
ein anderer System- oder Plattformfehler

Unter LwIP darf diese Methode nicht mit der bereits erworbenen LwIP-Stacksperre aufgerufen werden.

Schließen

INET_ERROR Close(
  void
)

Initiieren Sie den vollständigen TCP-Abschluss, d. h., er ist sowohl mit Senden als auch mit Empfangen abgeschlossen.

Details
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
other
ein 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 Netzwerkschnittstellenanzeige
Rückgabewerte
INET_NO_ERROR
Erfolg: msg wird 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
ein anderer System- oder Plattformfehler

DisableKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

Deaktivieren Sie die TCP-Option „keep-alive“.

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 ist nicht mehr offen.
INET_ERROR_NOT_IMPLEMENTED
Systemimplementierung nicht abgeschlossen.
other
ein anderer System- oder Plattformfehler

Hinweis:Diese Methode kann nur aufgerufen werden, wenn sich der Endpunkt in einem der verbundenen Status befindet. Diese Methode bewirkt nichts, wenn am Endpunkt keine Keepalives aktiviert wurden.

DisableReceive

void DisableReceive(
  void
)

Empfang deaktivieren.

Alle Event-Handler deaktivieren. Daten, die an einen Endpunkt gesendet werden, der den Empfang deaktiviert, werden so lange bestätigt, bis das Empfangsfenster erschöpft ist.

EnableKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

Aktivieren Sie die TCP-Option „keep-alive“.

TCPEndPoint::EnableKeepAlive wird aktiviert.

Automatische Übertragung der TCP-Keep-Alive-Prüfungssegmente alle interval Sekunden starten. 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 vor dem Zeitlimit.
Rückgabewerte
INET_NO_ERROR
Erfolg: Adresse und Port extrahiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.
INET_ERROR_CONNECTION_ABORTED
TCP-Verbindung ist nicht mehr offen.
INET_ERROR_NOT_IMPLEMENTED
Systemimplementierung nicht abgeschlossen.
other
ein anderer System- oder Plattformfehler

Weitere Informationen zur Spezifikation finden Sie unter 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 sich der Endpunkt in einem der verbundenen Status befindet. Diese Methode kann mehrmals aufgerufen werden, um das Keepalive-Intervall oder die Anzahl der Zeitüberschreitungen anzupassen.

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

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

"EnableNoDelay" ein.

TCPEndPoint::EnableNoDelay aus.

Deaktivieren Sie den Nagle-Pufferalgorithmus in TCP, indem Sie die Socket-Optionen "TCP_NODelay" festlegen.

EnableReceive

void EnableReceive(
  void
)

Empfang aktivieren.

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

Kostenlos

void Free(
  void
)

Initiieren (oder Fortfahren) einer vollständigen TCP-Schließung, wobei Fehler ignoriert werden.

Das Objekt wird in den kostenlosen Pool zurückgegeben und alle verbleibenden Nutzerverweise sind anschließend ungültig.

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

IP-Adresse und TCP-Port des lokalen Endpunkts extrahieren.

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 ist nicht mehr offen.

GetPeerInfo

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

IP-Adresse und TCP-Port des Remote-Endpunkts extrahieren.

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 ist nicht mehr offen.

IsConnected

bool IsConnected(
  void
) const 

Extrahieren Sie, ob eine TCP-Verbindung hergestellt wurde.

Zuhö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 wird gemäß der Semantik der Plattform auf den Empfang von TCP-Nachrichten vorbereitet.

Details
Parameter
[in] backlog
Maximale Tiefe der Warteschlange für die Annahme von Verbindungen
Rückgabewerte
INET_NO_ERROR
Erfolg: Endpunkt ist bereit für den Empfang von Nachrichten.
INET_ERROR_INCORRECT_STATE
Der Endpunkt wartet bereits.

Auf einigen Plattformen wird das Argument backlog nicht verwendet (die Tiefe der Warteschlange ist fest; es kann jeweils nur eine Verbindung akzeptiert werden).

Auf LwIP-Systemen darf diese Methode nicht mit der bereits erworbenen LwIP-Stacksperre aufgerufen werden

LogId

uint16_t LogId(
  void
)

Rufen Sie eine Kennung für den Endpunkt ab.

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

MarkActive

void MarkActive(
  void
)

Beachten Sie die Aktivität, also setzen Sie den Timer bei Inaktivität zurück.

Setzen Sie den Timer bei Inaktivität auf null zurück.

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
)

Verschiebt den Nachrichtentext zurück an den Anfang der Empfangswarteschlange.

Diese Methode darf nur von Datenempfangs-Event-Handlern aufgerufen werden, um einen nicht bestätigten Teil der Daten wieder in die Empfangswarteschlange zu verschieben. Die Betriebssemantik ist nicht definiert, wenn sich der Aufrufer außerhalb des Geltungsbereichs eines Datenempfangsereignis-Handlers befindet, data nicht der dem Handler übergebene Weave::System::PacketBuffer ist oder data nicht den unbestätigten Teil enthält, der nach der durch einen vorherigen Aufruf der AckReceive(uint16_t len)-Methode bestätigten Byte verbleibt.

Details
Parameter
[out] data
SMS-Text, der gesendet werden soll.
Rückgabewerte
INET_NO_ERROR
Erfolg: Empfang bestätigt.
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
SMS-Text, der gesendet werden soll.
[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 das Zeitlimit für die erfolgreiche Ausführung von Connect oder die Rückgabe eines Fehlers fest.

Details
Parameter
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

Legen Sie die Socket-Option „TCP TCP_USER_TIMEOUT“ fest.

TCPEndPoint::SetUserTimeout aus.

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

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

Legt die Socket-Option für das TCP-Zeitlimit des Nutzers fest.

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

Hinweis:Diese Methode kann nur aufgerufen werden, wenn sich der Endpunkt in einem der verbundenen Status befindet. Diese Methode kann mehrmals aufgerufen werden, um das Keepalive-Intervall oder die Anzahl der Zeitüberschreitungen anzupassen.

Herunterfahren

INET_ERROR Shutdown(
  void
)

Initiieren Sie TCP halbnah, d. h., das Senden ist abgeschlossen.

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