Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

nl:: Inet:: TCPEndPoint

#include <src/inet/TCPEndPoint.h>

Objekte dieser Klasse repräsentieren TCP-Transportendpunkte.

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-Protokollsteuerblöcken, wenn das System entsprechend konfiguriert ist.

Erbe

Erbt 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
}
aufzählen
Dynamischer Grundzustand des zugrunde liegenden Endpunkts.
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) Typdef
void(*
Art der Ereignisbehandlungsfunktion für Verbindungsakzeptanzfehler.
OnConnectCompleteFunct )(TCPEndPoint *endPoint, INET_ERROR err) Typdef
void(*
Art der Ereignisbehandlungsfunktion für den Verbindungsaufbau.
OnConnectionClosedFunct )(TCPEndPoint *endPoint, INET_ERROR err) Typdef
void(*
Art der Ereignisbehandlungsfunktion für den Verbindungsaufbau.
OnConnectionReceivedFunct )(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) Typdef
void(*
Art der Verbindung empfangene Ereignisbehandlungsfunktion.
OnDataReceivedFunct )(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) Typdef
void(*
Art der Ereignisbehandlungsfunktion für den Datenempfang.
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) Typdef
void(*
Art der Ereignisbehandlungsfunktion für die Datenübertragung.
OnPeerCloseFunct )(TCPEndPoint *endPoint) Typdef
void(*
Art der Ereignisbehandlungsfunktion für den halbgeschlossenen Empfang.
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) Typdef
void(*
Typ von TCP SendIdle hat die Signalverarbeitungsfunktion geändert.

Öffentliche Attribute

OnAcceptError
Der Delegierte der Verbindungsakzeptanz-Ereignisbehandlungsfunktion des Endpunkts.
OnConnectComplete
Der Funktionsdelegat für die Ereignisbehandlung beim Verbindungsaufbau des Endpunkts.
OnConnectionClosed
Der Delegat der Close-Event-Handling-Funktion des Endpunkts.
OnConnectionReceived
Der Verbindungsdelegat für die Ereignisbehandlungsfunktion des Endpunkts.
OnDataReceived
Der Delegierte der Ereignisbehandlungsfunktion für den Nachrichtentextempfang des Endpunkts.
OnDataSent
Der Delegierte der Ereignisbehandlungsfunktion für die Nachrichtentextübertragung des Endpunkts.
OnPeerClose
Der halbgeschlossene Funktionsdelegat für die Empfangsereignisbehandlung des Endpunkts.
OnTCPSendIdleChanged
Die Ereignisbehandlungsfunktion delegiert die 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
Dynamischer Grundzustand des zugrunde liegenden Endpunkts.

Öffentliche Funktionen

Abort (void)
void
Endpoint abbrechend schließen, d. h. RST-Pakete senden.
AckReceive (uint16_t len)
Quittieren Sie den Empfang des Nachrichtentextes.
Bind (IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
Binden Sie den Endpunkt an eine Schnittstellen-IP-Adresse.
Close (void)
Initiate TCP full close, mit anderen Worten, 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.
EnableReceive (void)
void
Empfang aktivieren.
Free (void)
void
Initiieren (oder fortsetzen) Sie das vollständige Schließen von TCP und ignorieren Sie Fehler.
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
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 einen Bezeichner für den Endpunkt ab.
MarkActive (void)
void
Beachten Sie die Aktivität, mit anderen Worten, setzen Sie den Leerlauf-Timer zurück.
PendingReceiveLength (void)
uint32_t
Extrahieren Sie die Länge der unbestä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 an den Anfang der Empfangswarteschlange zurückschieben.
Send ( Weave::System::PacketBuffer *data, bool push)
Nachrichtentext über TCP-Verbindung senden.
SetConnectTimeout (const uint32_t connTimeoutMsecs)
void
Legen Sie die Zeitüberschreitung 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)
Initiate TCP half close, d. h. mit dem Senden fertig.

Öffentliche Typen

@10

 @10

Dynamischer Grundzustand des zugrunde liegenden Endpunkts.

Objekte werden im "Bereit"-Zustand initialisiert, gehen zu nachfolgenden Zuständen über, die einer Vereinfachung der Zustände der TCP-Transportzustandsmaschine entsprechen.

Hinweis: Die kBasisState_Closed Zustand Aufzählung wird abgebildet kState_Ready für historische binary-Kompatibilitätsgründen. Die bestehende kState_Closed ist separat die Unterscheidung zwischen „noch nicht geöffnet“ zu identifizieren und „zuvor geöffneten jetzt geschlossen“ , die zuvor gab es in den kState_Ready und kState_Closed Staaten.

Eigenschaften
kState_Bound

Endpunkt gebunden, aber nicht lauschend.

kState_Closed

Endpunkt geschlossen, bereit zur Freigabe.

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, der Verbindungen empfängt.

kState_Ready

Endpunkt initialisiert, aber nicht gebunden.

kState_ReceiveShutdown

Endpunkt hat auf halbgeschlossen geantwortet.

kState_SendShutdown

Endpunkt hat seinen Halbschluss eingeleitet.

OnAcceptErrorFunct

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

Art der Ereignisbehandlungsfunktion für Verbindungsakzeptanzfehler.

Bietet eine derartige Funktion zum OnAcceptError Delegiertenelement Prozessverbindungsannahme Fehlerereignisse auf endPoint . Das err Argument liefert beschreiben Sie die Art des Fehlers.

Einzelheiten
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] err
Der Grund für den Fehler.

OnConnectCompleteFunct

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

Art der Ereignisbehandlungsfunktion für den Verbindungsaufbau.

Geben Sie eine Funktion dieser Art auf dem OnConnectComplete Delegierten Mitglied Verbindungsaufbau Ereignisse zu verarbeiten endPoint . Das err Argument unterscheidet erfolgreiche Verbindungen von Ausfällen.

Einzelheiten
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] err
INET_NO_ERROR wenn Erfolg, sonst ein anderer Code.

OnConnectionClosedFunct

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

Art der Ereignisbehandlungsfunktion für den Verbindungsaufbau.

Bietet eine derartige Funktion zum OnConnectionClosed Delegiertenelement Prozessanschluss Beendigung Ereignisse auf endPoint . Das err Argument unterscheidet erfolgreiche Abschlüsse von Ausfällen.

Einzelheiten
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] err
INET_NO_ERROR wenn Erfolg, sonst ein anderer Code.

OnConnectionReceivedFunct

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

Art der Verbindung empfangene Ereignisbehandlungsfunktion.

Bietet eine derartige Funktion zum OnConnectionReceived Delegiertenelement Prozessanschluss Empfangsereignisse auf listeningEndPoint . Der neu empfangene Endpunkt conEndPoint wird bei IP - Adresse befindet peerAddr und TCP - Port peerPort .

Einzelheiten
Parameter
[in] listeningEndPoint
Der abhörende TCP-Endpunkt.
[in] conEndPoint
Der neu empfangene TCP-Endpunkt.
[in] peerAddr
Die IP-Adresse der Gegenstelle.
[in] peerPort
Der TCP-Port der Gegenstelle.

OnDataReceivedFunct

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

Art der Ereignisbehandlungsfunktion für den Datenempfang.

Bietet eine derartige Funktion zum OnDataReceived Delegiertenelement Prozessdatenempfangsereignisse auf endPoint wo data der Nachrichtentext empfangen werden.

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

Datenempfangsereignishandler müssen Daten bestätigen das verarbeitete mit AckReceive Methode. Die Free - Methode auf dem Datenpuffer muss auch aufgerufen werden , wenn die PutBackReceivedData stattdessen verwendet wird.

OnDataSentFunct

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

Art der Ereignisbehandlungsfunktion für die Datenübertragung.

Bietet eine derartige Funktion zum OnDataSent Delegiertenelement Prozessdatenübertragungsereignisse auf endPoint wo len die Länge des Nachrichtentextes an das TCP Übertragungsfenster hinzugefügt, die durch die zugrunde liegenden Netzwerk zugelassen sind Stapel für das Senden.

Einzelheiten
Parameter
[in] endPoint
Der dem Ereignis zugeordnete TCP-Endpunkt.
[in] len
Anzahl der Bytes, die dem Sendefenster hinzugefügt wurden.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

Art der Ereignisbehandlungsfunktion für den halbgeschlossenen Empfang.

Bieten eine derartige Funktion zum OnPeerClose Delegiertenelement - Verbindungsbeendigungsereignisse für die Verarbeitung endPoint .

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

OnTCPSendIdleChangedFunct

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

Typ von TCP SendIdle hat die Signalverarbeitungsfunktion geändert.

Bieten eine derartige Funktion zum OnTCPSendIdleChanged Delegiertenelement das Ereignis des Sendekanals des verarbeiten TCPEndPoint Änderungszustand zwischen Leerlauf und wird nicht im Leerlauf.

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

Öffentliche Attribute

OnAcceptError

OnAcceptErrorFunct OnAcceptError

Der Delegierte der Verbindungsakzeptanz-Ereignisbehandlungsfunktion des Endpunkts.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

Der Funktionsdelegat für die Ereignisbehandlung beim Verbindungsaufbau des Endpunkts.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

Der Delegat der Close-Event-Handling-Funktion des Endpunkts.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

Der Verbindungsdelegat für die Ereignisbehandlungsfunktion des Endpunkts.

OnDataReceived

OnDataReceivedFunct OnDataReceived

Der Delegierte der Ereignisbehandlungsfunktion für den Nachrichtentextempfang des Endpunkts.

OnDataSent

OnDataSentFunct OnDataSent

Der Delegierte der Ereignisbehandlungsfunktion für die Nachrichtentextübertragung des Endpunkts.

OnPeerClose

OnPeerCloseFunct OnPeerClose

Der halbgeschlossene Funktionsdelegat für die Empfangsereignisbehandlung des Endpunkts.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

Die Ereignisbehandlungsfunktion delegiert die Endpunktsignalisierung, wenn sich die Inaktivität des Sendekanals der TCP-Verbindung ändert.

Dies wird von höheren Schichten verwendet, um basierend darauf, ob gesendete Daten zuverlässig an den Peer geliefert wurden, geeignete Maßnahmen zu ergreifen.

Empfangen aktiviert

bool ReceiveEnabled

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

Zustand

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

Dynamischer Grundzustand des zugrunde liegenden Endpunkts.

Objekte werden im "Bereit"-Zustand initialisiert, gehen zu nachfolgenden Zuständen über, die einer Vereinfachung der Zustände der TCP-Transportzustandsmaschine entsprechen.

Hinweis: Die kBasisState_Closed Zustand Aufzählung wird abgebildet kState_Ready für historische binary-Kompatibilitätsgründen. Die bestehende kState_Closed ist separat die Unterscheidung zwischen „noch nicht geöffnet“ zu identifizieren und „zuvor geöffneten jetzt geschlossen“ , die zuvor gab es in den kState_Ready und kState_Closed Staaten.

Öffentliche Funktionen

Abbrechen

void Abort(
  void
)

Endpoint abbrechend schließen, d. h. RST-Pakete senden.

Bestätigen

INET_ERROR AckReceive(
  uint16_t len
)

Quittieren Sie den Empfang des Nachrichtentextes.

Verwenden Sie diese Methode, um den Empfang aller oder eines Teils der empfangenen Daten zu bestätigen. Der Betrieb Semantik ist undefiniert , wenn len größer als die Gesamt ausstehenden unbestätigten empfangenen Daten.

Einzelheiten
Parameter
[in] len
Anzahl der zu bestätigenden Bytes.
Rückgabewerte
INET_NO_ERROR
Erfolg: Empfang quittiert.
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.

Einzelheiten
Parameter
[in] addrType
die Protokollversion der IP-Adresse
[in] addr
die IP-Adresse (muss eine Schnittstellenadresse sein)
[in] port
der TCP-Port
[in] reuseAddr
Option zum Teilen der Bindung mit anderen Endpunkten
Rückgabewerte
INET_NO_ERROR
Erfolg: Endpunkt an Adresse gebunden
INET_ERROR_INCORRECT_STATE
Endpunkt wurde zuvor gebunden
INET_NO_MEMORY
unzureichender Speicher für Endpunkt
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType stimmt nicht überein IPVer .
INET_ERROR_WRONG_ADDRESS_TYPE
addrType ist kIPAddressType_Any , oder die Art der addr ist nicht gleich addrType .
other
ein anderer System- oder Plattformfehler

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

Schließen

INET_ERROR Close(
  void
)

Initiate TCP full close, mit anderen Worten, sowohl mit Senden als auch mit Empfangen abgeschlossen.

Einzelheiten
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.

Einzelheiten
Parameter
[in] addr
die Ziel-IP-Adresse
[in] port
der Ziel-TCP-Port
[in] intf
eine optionale Netzwerkschnittstellenanzeige
Rückgabewerte
INET_NO_ERROR
Erfolg: msg wird für das Senden der Warteschlange.
INET_ERROR_NOT_IMPLEMENTED
Systemimplementierung nicht abgeschlossen.
INET_ERROR_WRONG_ADDRESS_TYPE
die Zieladresse und die gebundene Schnittstelle Adresse passende Protokollversionen oder Adresstyp nicht oder die Zieladresse eine IPv6 - Link-Local - Adresse und intf nicht angegeben ist.
other
ein anderer System- oder Plattformfehler

DeaktivierenKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

Deaktivieren Sie die TCP-Option "Keep-Alive".

TCPEndPoint :: DisableKeepAlive .

Deaktivieren Sie TCP-Keepalive-Tests für die zugeordnete TCP-Verbindung.

Einzelheiten
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
ein anderer System- oder Plattformfehler

Hinweis: Diese Methode kann nur aufgerufen werden , wenn der Endpunkt in einem der angeschlossenen Staaten. Diese Methode hat keine Auswirkung, wenn auf dem Endpunkt keine Keepalives aktiviert wurden.

Empfang deaktivieren

void DisableReceive(
  void
)

Empfang deaktivieren.

Deaktivieren Sie alle Ereignishandler. Daten, die an einen Endpunkt gesendet werden, der den Empfang deaktiviert, werden 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 .

Starten automatisch alle TCP „Keep-Alive“ -Sonde Segmente übertragen interval Sekunden. Die Verbindung wird abgebrochen , automatisch nach einer negativen Antwort empfängt, oder nach dem Senden timeoutCount Sondensegmente ohne eine positive Antwort zu erhalten.

Einzelheiten
Parameter
[in] interval
Zeit in Sekunden zwischen Sondierungsanfragen.
[in] timeoutCount
Anzahl der vor dem Timeout zu sendenden Sonden.
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
ein anderer System- oder Plattformfehler

Siehe RFC 1122, Abschnitt 4.2.3.6 für Spezifikationsdetails.

Aktivieren Sie TCP-Keepalive-Tests für die zugeordnete TCP-Verbindung.

Hinweis: Diese Methode kann nur aufgerufen werden , wenn der Endpunkt in einem der angeschlossenen Staaten. Diese Methode kann mehrmals aufgerufen werden, um das Keepalive-Intervall oder die Zeitüberschreitungsanzahl anzupassen.

Einzelheiten
Parameter
interval
Das Intervall (in Sekunden) zwischen Keepalive-Sonden. Dieser Wert steuert auch die Zeit zwischen dem letzten gesendeten Datenpaket und der Übertragung der ersten Keepalive-Probe.
timeoutCount
Die maximale Anzahl unbestätigter Probes vor der Verbindung gilt als fehlgeschlagen.

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

EnableNoDelay.

TCPEndPoint :: EnableNoDelay .

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

EnableReceive

void EnableReceive(
  void
)

Empfang aktivieren.

Aktivieren Sie alle Ereignishandler. Daten, die an einen Endpunkt gesendet werden, der den Empfang deaktiviert, werden bestätigt, bis das Empfangsfenster erschöpft ist.

Kostenlos

void Free(
  void
)

Initiieren (oder fortsetzen) Sie das vollständige Schließen von TCP und ignorieren Sie Fehler.

Das Objekt wird an den freien Pool zurückgegeben und alle verbleibenden Benutzerreferenzen sind anschließend 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 keine NULL - Zeiger - Werte für beide Argument.

Einzelheiten
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.

PeerInfo abrufen

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

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

Verwenden Sie keine NULL - Zeiger - Werte für beide Argument.

Einzelheiten
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.

Ist verbunden

bool IsConnected(
  void
) const 

Extrahieren Sie, ob eine TCP-Verbindung hergestellt wurde.

Hör mal zu

INET_ERROR Listen(
  uint16_t backlog
)

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

Wenn State ist bereits kState_Listening , dann wird keine Operation durchgeführt, da sonst der State ist auf kState_Listening und der Endpunkt zu empfangen TCP - Nachrichten bereit, nach der Semantik der Plattform.

Einzelheiten
Parameter
[in] backlog
maximale Tiefe der Verbindungsannahmewarteschlange
Rückgabewerte
INET_NO_ERROR
Erfolg: Endpunkt bereit, Nachrichten zu empfangen.
INET_ERROR_INCORRECT_STATE
Endpunkt hört bereits.

Auf einigen Plattformen der backlog wird Argument nicht verwendet (die Tiefe der Warteschlange festgelegt ist , nur eine Verbindung zu einer Zeit , akzeptiert werden kann).

Auf LwIP-Systemen darf diese Methode nicht mit bereits erworbener LwIP-Stack-Sperre aufgerufen werden

LogId

uint16_t LogId(
  void
)

Rufen Sie einen Bezeichner für den Endpunkt ab.

Einzelheiten
Kehrt zurück
Gibt einen undurchsichtigen eindeutigen Bezeichner für Nutzungsprotokolle zurück.

Aktiv markieren

void MarkActive(
  void
)

Beachten Sie die Aktivität, mit anderen Worten, setzen Sie den Leerlauf-Timer zurück.

Setzen Sie den Leerlauftimer auf Null zurück.

AusstehendReceiveLength

uint32_t PendingReceiveLength(
  void
)

Extrahieren Sie die Länge der unbestätigten Empfangsdaten.

Einzelheiten
Kehrt zurück
Anzahl der Bytes in der Warteschlange empfangen, die noch nicht mit anerkannt worden AckReceive(uint16_t len) .

AusstehendSendLänge

uint32_t PendingSendLength(
  void
)

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

Einzelheiten
Kehrt zurück
Anzahl der nicht übertragenen Bytes in der Übertragungswarteschlange.

PutBackReceivedData

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

Nachrichtentext an den Anfang der Empfangswarteschlange zurückschieben.

Diese Methode darf nur von Ereignisbehandlungsroutinen für den Datenempfang aufgerufen werden, um einen unbestätigten Teil der Daten wieder in die Empfangswarteschlange zu stellen. Die Betriebssemantik nicht definiert sind , wenn der Anrufer nicht in den Geltungsbereich eines Datenempfangsereignisbehandlungsroutine ist, data nicht der Weave::System::PacketBuffer an den Handler bereitgestellt, oder data enthält nicht den unbestätigten Abschnitt , nachdem die verbleibenden Bytes durch eine anerkannte vor Aufruf der AckReceive(uint16_t len) Methode.

Einzelheiten
Parameter
[out] data
Nachrichtentext zum Pushen.
Rückgabewerte
INET_NO_ERROR
Erfolg: Empfang quittiert.
INET_ERROR_INCORRECT_STATE
TCP-Verbindung nicht hergestellt.

Senden

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

Nachrichtentext über TCP-Verbindung senden.

Die Weave::System::PacketBuffer::Free Methode basiert auf der genannten data Argument , unabhängig davon , ob die Übertragung erfolgreich war oder fehlgeschlagen ist .

Einzelheiten
Parameter
[out] data
Zu sendender Nachrichtentext.
[out] push
Wenn true , dann sofort senden, sonst Warteschlange.
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 die Zeitüberschreitung fest, damit Connect erfolgreich ist oder einen Fehler zurückgibt.

Einzelheiten
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 dürfen, bevor TCP die entsprechende Verbindung zwangsweise schließt. Wenn der Optionswert als 0 angegeben ist, verwendet TCP den Systemstandard. Weitere Informationen finden Sie in RFC 5482.

Einzelheiten
Parameter
[in] userTimeoutMillis
TCP-Benutzer-Timeout-Wert 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

Legen Sie die Socket-Option für TCP-Benutzerzeitüberschreitung fest.

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

Hinweis: Diese Methode kann nur aufgerufen werden , wenn der Endpunkt in einem der angeschlossenen Staaten. Diese Methode kann mehrmals aufgerufen werden, um das Keepalive-Intervall oder die Zeitüberschreitungsanzahl anzupassen.

Schließen

INET_ERROR Shutdown(
  void
)

Initiate TCP half close, d. h. mit dem Senden fertig.

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