nl::Inet::TCPEndPoint

#include <src/inet/TCPEndPoint.h>

ออบเจ็กต์ของคลาสนี้แสดงปลายทางการรับส่ง TCP

สรุป

Nest Inet Layer สรุปวิธีการในการโต้ตอบกับปลายทางการรับส่งข้อมูล TCP (ซ็อกเก็ต SOCK_STREAM ในระบบที่ได้รับ Linux และ BSD) หรือบล็อกการควบคุมโปรโตคอล LwIP TCP เนื่องจากมีการกำหนดค่าระบบให้สอดคล้องกัน

การสืบทอด

รับค่าจาก: nl::Inet::EndPointBasis

ประเภทสาธารณะ

@10{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Connecting = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_ReceiveShutdown = 6,
  kState_Closing = 7,
  kState_Closed = 8
}
enum
สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ
OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err) Typedef
void(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์ข้อผิดพลาดในการยอมรับการเชื่อมต่อ
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err) Typedef
void(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์การสร้างการเชื่อมต่อ
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) Typedef
void(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์การสร้างการเชื่อมต่อ
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) Typedef
void(*
ประเภทของการเชื่อมต่อที่ได้รับฟังก์ชันการจัดการเหตุการณ์
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) Typedef
void(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์การรับข้อมูล
OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len) Typedef
void(*
ประเภทฟังก์ชันการจัดการเหตุการณ์การส่งข้อมูล
OnPeerCloseFunct)(TCPEndPoint *endPoint) Typedef
void(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์ต้อนรับระยะปิดการขาย
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) Typedef
void(*
ประเภทของ TCP SendIdle มีการเปลี่ยนแปลงฟังก์ชันการจัดการสัญญาณ

แอตทริบิวต์สาธารณะ

OnAcceptError
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การยอมรับการเชื่อมต่อของปลายทาง
OnConnectComplete
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การสร้างการเชื่อมต่อของปลายทาง
OnConnectionClosed
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์แบบปิดของปลายทาง
OnConnectionReceived
การเชื่อมต่อของปลายทางจะได้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์
OnDataReceived
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การรับข้อความปลายทาง
OnDataSent
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การส่งข้อความของปลายทาง
OnPeerClose
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์ที่ได้รับการปิดครึ่งของปลายทาง
OnTCPSendIdleChanged
การมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์ของการส่งสัญญาณปลายทางเมื่อช่องส่งของการเชื่อมต่อ TCP มีการเปลี่ยนแปลง
ReceiveEnabled
bool
สวิตช์ควบคุมที่ระบุว่าแอปพลิเคชันกำลังรับข้อมูลอยู่หรือไม่
State
enum nl::Inet::TCPEndPoint::@10
สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ

ฟังก์ชันสาธารณะ

Abort(void)
void
ปิดปลายทางแบบล้มเลิก กล่าวคือ ส่งแพ็กเก็ต RST
AckReceive(uint16_t len)
รับทราบข้อความที่ได้รับ
Bind(IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
เชื่อมโยงปลายทางกับที่อยู่ IP ของอินเทอร์เฟซ
Close(void)
เริ่มต้น TCP แบบปิดโดยสมบูรณ์ กล่าวคือ สิ้นสุดโดยใช้ทั้งการส่งและรับ
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
เริ่มการเชื่อมต่อ TCP
DisableKeepAlive(void)
ปิดใช้ "keep-alive" ของ TCP ตัวเลือก
DisableReceive(void)
void
ปิดการรับ
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
เปิดใช้ "keep-alive" ของ TCP ตัวเลือก
EnableNoDelay(void)
EnableNoDelay
EnableReceive(void)
void
เปิดใช้การรับ
Free(void)
void
เริ่มต้น (หรือดำเนินการต่อ) การปิด TCP เต็มรูปแบบโดยไม่สนใจข้อผิดพลาด
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
ดึงที่อยู่ IP และพอร์ต TCP ของปลายทางในเครื่อง
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
ดึงข้อมูลที่อยู่ IP และพอร์ต TCP ของปลายทางระยะไกล
IsConnected(void) const
bool
ดึงข้อมูลว่าสร้างการเชื่อมต่อ TCP แล้วหรือไม่
Listen(uint16_t backlog)
เตรียมปลายทางให้รับข้อความ TCP
LogId(void)
uint16_t
รับตัวระบุสำหรับปลายทาง
MarkActive(void)
void
บันทึกกิจกรรมหรือก็คือรีเซ็ตตัวจับเวลาเมื่อไม่มีการใช้งาน
PendingReceiveLength(void)
uint32_t
แยกความยาวของข้อมูลที่ได้รับที่ยังไม่ได้ตอบรับ
PendingSendLength(void)
uint32_t
แยกความยาวของข้อมูลที่รอการส่งครั้งแรก
PutBackReceivedData(Weave::System::PacketBuffer *data)
พุชข้อความกลับไปที่ส่วนหัวของคิวการรับ
Send(Weave::System::PacketBuffer *data, bool push)
ส่งข้อความบนการเชื่อมต่อ TCP
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
ตั้งค่าระยะหมดเวลาสำหรับ Connect เพื่อให้ดำเนินการสำเร็จหรือแสดงผลข้อผิดพลาด
SetUserTimeout(uint32_t userTimeoutMillis)
ตั้งค่าตัวเลือกซ็อกเก็ต TCP_USER_TIMEOUT
Shutdown(void)
เริ่มต้น TCP ปิดครึ่งหนึ่ง กล่าวคือ สิ้นสุดการส่ง

ประเภทสาธารณะ

@10

 @10

สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ

เริ่มต้นออบเจ็กต์ในสถานะ "พร้อม" ดำเนินการต่อไปยังสถานะถัดไปที่สอดคล้องกับการทำให้สถานะของเครื่องสถานะการรับส่ง TCP ง่ายขึ้น

หมายเหตุ: การแจกแจงสถานะ kBasisState_Closed จะแมปกับ kState_Ready สำหรับเหตุผลด้านความเข้ากันได้กับไบนารีในอดีต kState_Closed ที่มีอยู่มีไว้เพื่อระบุความแตกต่างระหว่าง "ยังไม่เปิด" แยกกัน และ "เคยเปิดก่อนหน้านี้ตอนนี้ ปิด" ที่มีอยู่ก่อนหน้านี้ในรัฐ kState_Ready และ kState_Closed

พร็อพเพอร์ตี้
kState_Bound

ผูกกับปลายทางแล้ว แต่ไม่ได้ฟัง

kState_Closed

ปิดปลายทางแล้ว พร้อมสำหรับการเผยแพร่

kState_Closing

ปลายทางปิดแบบ 2 ทิศทาง

kState_Connected

เชื่อมต่อปลายทางแล้ว พร้อมสำหรับ tx/rx

kState_Connecting

ปลายทางกำลังพยายามเชื่อมต่อ

kState_Listening

การเชื่อมต่อการรับอุปกรณ์ปลายทาง

kState_Ready

เริ่มต้นปลายทางแล้ว แต่ไม่มีขอบเขต

kState_ReceiveShutdown

ผู้ใช้ปลายทางตอบกลับไปครึ่งหนึ่งแล้ว

kState_SendShutdown

ปลายทางเริ่มปิดการขายครึ่งหนึ่ง

OnAcceptErrorFunct

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

ประเภทของฟังก์ชันการจัดการเหตุการณ์ข้อผิดพลาดในการยอมรับการเชื่อมต่อ

ระบุฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnAcceptError เพื่อประมวลผลเหตุการณ์ข้อผิดพลาดในการยอมรับการเชื่อมต่อใน endPoint อาร์กิวเมนต์ err ให้รายละเอียดเฉพาะเกี่ยวกับประเภทของข้อผิดพลาด

รายละเอียด
พารามิเตอร์
[in] endPoint
ปลายทาง TCP ที่เชื่อมโยงกับเหตุการณ์
[in] err
สาเหตุของข้อผิดพลาด

OnConnectCompleteFunct

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

ประเภทของฟังก์ชันการจัดการเหตุการณ์การสร้างการเชื่อมต่อ

ระบุฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnConnectComplete เพื่อประมวลผลเหตุการณ์การสร้างการเชื่อมต่อใน endPoint อาร์กิวเมนต์ err แยกความแตกต่างระหว่างการเชื่อมต่อที่สำเร็จกับความล้มเหลว

รายละเอียด
พารามิเตอร์
[in] endPoint
ปลายทาง TCP ที่เชื่อมโยงกับเหตุการณ์
[in] err
INET_NO_ERROR หากสำเร็จ เป็นรหัสอื่น

OnConnectionClosedFunct

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

ประเภทของฟังก์ชันการจัดการเหตุการณ์การสร้างการเชื่อมต่อ

จัดเตรียมฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnConnectionClosed เพื่อประมวลผลเหตุการณ์การสิ้นสุดการเชื่อมต่อบน endPoint อาร์กิวเมนต์ err จะแยกการสิ้นสุดที่ประสบความสำเร็จออกจากความล้มเหลว

รายละเอียด
พารามิเตอร์
[in] endPoint
ปลายทาง TCP ที่เชื่อมโยงกับเหตุการณ์
[in] err
INET_NO_ERROR หากสำเร็จ เป็นรหัสอื่น

OnConnectionReceivedFunct

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

ประเภทของการเชื่อมต่อที่ได้รับฟังก์ชันการจัดการเหตุการณ์

จัดเตรียมฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnConnectionReceived เพื่อประมวลผลเหตุการณ์การรับการเชื่อมต่อใน listeningEndPoint ปลายทาง conEndPoint ที่ได้รับใหม่อยู่ที่ที่อยู่ IP peerAddr และพอร์ต TCP peerPort

รายละเอียด
พารามิเตอร์
[in] listeningEndPoint
ปลายทาง TCP ที่ฟังอยู่
[in] conEndPoint
ปลายทาง TCP ที่ได้รับใหม่
[in] peerAddr
ที่อยู่ IP ของเครื่องระยะไกล
[in] peerPort
พอร์ต TCP ของเพียร์ระยะไกล

OnDataReceivedFunct

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

ประเภทของฟังก์ชันการจัดการเหตุการณ์การรับข้อมูล

จัดเตรียมฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnDataReceived เพื่อประมวลผลเหตุการณ์การรับข้อมูลใน endPoint โดยที่ data คือข้อความที่ได้รับ

รายละเอียด
พารามิเตอร์
[in] endPoint
ปลายทาง TCP ที่เชื่อมโยงกับเหตุการณ์
[in] data
ข้อมูลที่ได้รับ

เครื่องจัดการเหตุการณ์การรับข้อมูลต้องรับทราบข้อมูลที่ประมวลผลโดยใช้เมธอด AckReceive ต้องเรียกใช้เมธอด Free ในบัฟเฟอร์ข้อมูลด้วย เว้นแต่จะใช้ PutBackReceivedData แทน

OnDataSentFunct

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

ประเภทฟังก์ชันการจัดการเหตุการณ์การส่งข้อมูล

จัดเตรียมฟังก์ชันประเภทนี้ให้กับสมาชิกที่ได้รับมอบสิทธิ์ OnDataSent เพื่อประมวลผลเหตุการณ์การส่งข้อมูลบน endPoint โดยที่ len คือความยาวของข้อความที่เพิ่มลงในหน้าต่างการส่ง TCP ซึ่งมีสิทธิ์สำหรับการส่งโดยสแต็กเครือข่ายที่สำคัญ

รายละเอียด
พารามิเตอร์
[in] endPoint
ปลายทาง TCP ที่เชื่อมโยงกับเหตุการณ์
[in] len
จำนวนไบต์ที่เพิ่มลงในหน้าต่างการส่ง

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

ประเภทของฟังก์ชันการจัดการเหตุการณ์ต้อนรับระยะปิดการขาย

จัดเตรียมฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnPeerClose เพื่อประมวลผลเหตุการณ์การสิ้นสุดการเชื่อมต่อบน endPoint

รายละเอียด
พารามิเตอร์
[in] endPoint
ปลายทาง TCP ที่เชื่อมโยงกับเหตุการณ์

OnTCPSendIdleChangedFunct

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

ประเภทของ TCP SendIdle มีการเปลี่ยนแปลงฟังก์ชันการจัดการสัญญาณ

ระบุฟังก์ชันประเภทนี้ให้กับสมาชิกที่รับมอบสิทธิ์ OnTCPSendIdleChanged เพื่อประมวลผลเหตุการณ์ของช่องทางการส่งของสถานะการเปลี่ยนแปลงของ TCPEndPoint ระหว่างเมื่อไม่มีการใช้งานและไม่ได้ใช้งาน

รายละเอียด
พารามิเตอร์
[in] endPoint
ปลายทาง TCP ที่เชื่อมโยงกับเหตุการณ์
[in] isIdle
เป็นจริงหากช่องส่งของปลายทาง TCP เป็น "ไม่มีการใช้งาน" หากไม่ใช่ "เท็จ"

แอตทริบิวต์สาธารณะ

OnAcceptError

OnAcceptErrorFunct OnAcceptError

ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การยอมรับการเชื่อมต่อของปลายทาง

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การสร้างการเชื่อมต่อของปลายทาง

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์แบบปิดของปลายทาง

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

การเชื่อมต่อของปลายทางจะได้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์

OnDataReceived

OnDataReceivedFunct OnDataReceived

ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การรับข้อความปลายทาง

OnDataSent

OnDataSentFunct OnDataSent

ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การส่งข้อความของปลายทาง

OnPeerClose

OnPeerCloseFunct OnPeerClose

ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์ที่ได้รับการปิดครึ่งของปลายทาง

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

การมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์ของการส่งสัญญาณปลายทางเมื่อช่องส่งของการเชื่อมต่อ TCP มีการเปลี่ยนแปลง

เลเยอร์ด้านบนจะใช้คำสั่งนี้เพื่อดำเนินการที่เหมาะสมโดยพิจารณาว่าข้อมูลที่ส่งไปยังมีการส่งมอบอย่างน่าเชื่อถือหรือไม่

ReceiveEnabled

bool ReceiveEnabled

สวิตช์ควบคุมที่ระบุว่าแอปพลิเคชันกำลังรับข้อมูลอยู่หรือไม่

รัฐ

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

สถานะไดนามิกพื้นฐานของปลายทางที่สำคัญ

เริ่มต้นออบเจ็กต์ในสถานะ "พร้อม" ดำเนินการต่อไปยังสถานะถัดไปที่สอดคล้องกับการทำให้สถานะของเครื่องสถานะการรับส่ง TCP ง่ายขึ้น

หมายเหตุ: การแจกแจงสถานะ kBasisState_Closed จะแมปกับ kState_Ready สำหรับเหตุผลด้านความเข้ากันได้กับไบนารีในอดีต kState_Closed ที่มีอยู่มีไว้เพื่อระบุความแตกต่างระหว่าง "ยังไม่เปิด" แยกกัน และ "เคยเปิดก่อนหน้านี้ตอนนี้ ปิด" ที่มีอยู่ก่อนหน้านี้ในรัฐ kState_Ready และ kState_Closed

ฟังก์ชันสาธารณะ

ล้มเลิก

void Abort(
  void
)

ปิดปลายทางแบบล้มเลิก กล่าวคือ ส่งแพ็กเก็ต RST

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

รับทราบข้อความที่ได้รับ

ใช้วิธีนี้เพื่อรับทราบข้อมูลที่ได้รับทั้งหมดหรือบางส่วน ไม่มีการกำหนดความหมายการดำเนินการหาก len มากกว่าจำนวนข้อมูลที่ได้รับที่ยังไม่ได้รับทราบซึ่งรอดำเนินการทั้งหมด

รายละเอียด
พารามิเตอร์
[in] len
จำนวนไบต์ที่จะรับทราบ
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ได้รับการตอบรับ
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้
INET_ERROR_CONNECTION_ABORTED
เปิดการเชื่อมต่อ TCP ไม่ได้แล้ว

เชื่อมโยง

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

เชื่อมโยงปลายทางกับที่อยู่ IP ของอินเทอร์เฟซ

เชื่อมโยงปลายทางกับที่อยู่ IP ของอินเทอร์เฟซเครือข่ายที่ระบุ

รายละเอียด
พารามิเตอร์
[in] addrType
เวอร์ชันโปรโตคอลของที่อยู่ IP
[in] addr
ที่อยู่ IP (ต้องเป็นที่อยู่อินเทอร์เฟซ)
[in] port
พอร์ต TCP
[in] reuseAddr
ตัวเลือกในการแชร์การเชื่อมโยงกับปลายทางอื่นๆ
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: เชื่อมโยงกับที่อยู่ปลายทาง
INET_ERROR_INCORRECT_STATE
มีการผูกปลายทางไว้ก่อนหน้านี้
INET_NO_MEMORY
หน่วยความจำไม่เพียงพอสำหรับปลายทาง
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType ไม่ตรงกับ IPVer
INET_ERROR_WRONG_ADDRESS_TYPE
addrType เท่ากับ kIPAddressType_Any หรือประเภทของ addr ไม่เท่ากับ addrType
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

ใน LwIP ต้องไม่เรียกใช้เมธอดนี้เมื่อได้สแต็กล็อก LwIP แล้ว

ปิด

INET_ERROR Close(
  void
)

เริ่มต้น TCP แบบปิดโดยสมบูรณ์ กล่าวคือ สิ้นสุดโดยใช้ทั้งการส่งและรับ

รายละเอียด
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ดึงข้อมูลที่อยู่และพอร์ตแล้ว
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

เชื่อมต่อ

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

เริ่มการเชื่อมต่อ TCP

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

รายละเอียด
พารามิเตอร์
[in] addr
ที่อยู่ IP ปลายทาง
[in] port
พอร์ต TCP ปลายทาง
[in] intf
ตัวบ่งชี้อินเทอร์เฟซเครือข่ายที่ไม่บังคับ
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: msg อยู่ในคิวสำหรับการส่ง
INET_ERROR_NOT_IMPLEMENTED
การติดตั้งระบบไม่เสร็จสมบูรณ์
INET_ERROR_WRONG_ADDRESS_TYPE
ที่อยู่ปลายทางและที่อยู่อินเทอร์เฟซที่เชื่อมโยงไม่มีเวอร์ชันโปรโตคอลหรือประเภทที่อยู่ที่ตรงกัน หรือที่อยู่ปลายทางเป็นที่อยู่แบบลิงก์ภายในที่ใช้ IPv6 และไม่ได้ระบุ intf
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

DisableKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

ปิดใช้ "keep-alive" ของ TCP ตัวเลือก

TCPEndPoint::DisableKeepAlive.

ปิดใช้การตรวจสอบ Keepalive ของ TCP ในการเชื่อมต่อ TCP ที่เชื่อมโยง

รายละเอียด
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ดึงข้อมูลที่อยู่และพอร์ตแล้ว
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้
INET_ERROR_CONNECTION_ABORTED
เปิดการเชื่อมต่อ TCP ไม่ได้แล้ว
INET_ERROR_NOT_IMPLEMENTED
การติดตั้งระบบไม่เสร็จสมบูรณ์
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

หมายเหตุ: ระบบจะเรียกใช้เมธอดนี้ได้เมื่อปลายทางอยู่ในสถานะที่เชื่อมต่อแบบใดแบบหนึ่งเท่านั้น วิธีนี้จะไม่ช่วยใดๆ หากไม่ได้เปิดใช้การเก็บรักษาไว้ในปลายทาง

DisableReceive

void DisableReceive(
  void
)

ปิดการรับ

ปิดใช้ตัวแฮนเดิลเหตุการณ์ทั้งหมด ระบบจะรับทราบข้อมูลที่ส่งไปยังปลายทางที่ปิดใช้การรับสัญญาณจนกว่าช่วงเวลาในการรับจะหมดลง

EnableKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

เปิดใช้ "keep-alive" ของ TCP ตัวเลือก

TCPEndPoint::EnableKeepAlive.

เริ่มส่ง TCP "Keep-alive" ของ TCP โดยอัตโนมัติ ทุก interval วินาที การเชื่อมต่อจะล้มเลิกโดยอัตโนมัติหลังจากได้รับคำตอบในเชิงลบ หรือหลังจากส่งกลุ่มการตรวจสอบ timeoutCount กลุ่มโดยไม่ได้รับการตอบสนองเชิงบวก

รายละเอียด
พารามิเตอร์
[in] interval
เวลาเป็นวินาทีระหว่างคำขอตรวจสอบ
[in] timeoutCount
จำนวนการตรวจสอบที่จะส่งก่อนหมดเวลา
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ดึงข้อมูลที่อยู่และพอร์ตแล้ว
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้
INET_ERROR_CONNECTION_ABORTED
เปิดการเชื่อมต่อ TCP ไม่ได้แล้ว
INET_ERROR_NOT_IMPLEMENTED
การติดตั้งระบบไม่เสร็จสมบูรณ์
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

โปรดดูรายละเอียดข้อกำหนดเฉพาะ RFC 1122 ส่วน 4.2.3.6

เปิดใช้งานการตรวจสอบ Keepalive ของ TCP บนการเชื่อมต่อ TCP ที่เชื่อมโยง

หมายเหตุ: ระบบจะเรียกใช้เมธอดนี้ได้เมื่อปลายทางอยู่ในสถานะที่เชื่อมต่อแบบใดแบบหนึ่งเท่านั้น วิธีการนี้สามารถเรียกใช้ได้หลายครั้งเพื่อปรับช่วง Keepalive หรือจำนวนระยะหมดเวลา

รายละเอียด
พารามิเตอร์
interval
ช่วงเวลา (เป็นวินาที) ระหว่างการตรวจสอบ Keepalive ค่านี้ยังควบคุมเวลาระหว่างการส่งแพ็กเก็ตข้อมูลล่าสุดไปจนถึงการส่งการตรวจสอบ Keepalive แรกด้วย
timeoutCount
จำนวนการตรวจสอบสูงสุดที่ยังไม่ได้รับทราบ ก่อนที่การเชื่อมต่อจะล้มเหลว

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

EnableNoDelay

TCPEndPoint::EnableNoDelay

ปิดอัลกอริทึมการบัฟเฟอร์ระหว่าง Nagle ใน TCP โดยตั้งค่าตัวเลือกซ็อกเก็ต TCP_NODELAY

EnableReceive

void EnableReceive(
  void
)

เปิดใช้การรับ

เปิดใช้ตัวแฮนเดิลเหตุการณ์ทั้งหมด ระบบจะรับทราบข้อมูลที่ส่งไปยังปลายทางที่ปิดใช้การรับสัญญาณจนกว่าช่วงเวลาในการรับจะหมดลง

ฟรี

void Free(
  void
)

เริ่มต้น (หรือดำเนินการต่อ) การปิด TCP เต็มรูปแบบโดยไม่สนใจข้อผิดพลาด

อ็อบเจกต์จะถูกกลับไปยังพูลอิสระ และการอ้างอิงผู้ใช้ที่เหลืออยู่ทั้งหมดจะใช้ไม่ได้ในเวลาต่อมา

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

ดึงที่อยู่ IP และพอร์ต TCP ของปลายทางในเครื่อง

อย่าใช้ค่าตัวชี้ NULL กับอาร์กิวเมนต์ใดอาร์กิวเมนต์หนึ่ง

รายละเอียด
พารามิเตอร์
[out] retAddr
ที่อยู่ IP ของปลายทางในเครื่อง
[out] retPort
พอร์ต TCP ของปลายทางภายใน
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ดึงข้อมูลที่อยู่และพอร์ตแล้ว
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้
INET_ERROR_CONNECTION_ABORTED
เปิดการเชื่อมต่อ TCP ไม่ได้แล้ว

GetPeerInfo

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

ดึงข้อมูลที่อยู่ IP และพอร์ต TCP ของปลายทางระยะไกล

อย่าใช้ค่าตัวชี้ NULL กับอาร์กิวเมนต์ใดอาร์กิวเมนต์หนึ่ง

รายละเอียด
พารามิเตอร์
[out] retAddr
ที่อยู่ IP ของปลายทางระยะไกล
[out] retPort
พอร์ต TCP ของปลายทางระยะไกล
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ดึงข้อมูลที่อยู่และพอร์ตแล้ว
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้
INET_ERROR_CONNECTION_ABORTED
เปิดการเชื่อมต่อ TCP ไม่ได้แล้ว

IsConnected

bool IsConnected(
  void
) const 

ดึงข้อมูลว่าสร้างการเชื่อมต่อ TCP แล้วหรือไม่

ฟัง

INET_ERROR Listen(
  uint16_t backlog
)

เตรียมปลายทางให้รับข้อความ TCP

หาก State เป็น kState_Listening อยู่แล้ว แสดงว่าไม่มีการดำเนินการใดๆ มิเช่นนั้น ระบบจะตั้งค่า State เป็น kState_Listening และเตรียมปลายทางให้ได้รับข้อความ TCP ตามความหมายของแพลตฟอร์ม

รายละเอียด
พารามิเตอร์
[in] backlog
ความลึกสูงสุดของคิวการยอมรับการเชื่อมต่อ
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ปลายทางพร้อมรับข้อความแล้ว
INET_ERROR_INCORRECT_STATE
อุปกรณ์ปลายทางกำลังฟังอยู่

ในบางแพลตฟอร์ม ระบบจะไม่ใช้อาร์กิวเมนต์ backlog (ความลึกของคิวจะคงที่ และสามารถยอมรับการเชื่อมต่อได้ครั้งละ 1 รายการเท่านั้น)

ในระบบ LwIP ต้องไม่เรียกใช้เมธอดนี้เมื่อได้สแต็กล็อก LwIP แล้ว

LogId

uint16_t LogId(
  void
)

รับตัวระบุสำหรับปลายทาง

รายละเอียด
การคืนสินค้า
แสดงผลตัวระบุที่ไม่ซ้ำกันแบบทึบแสงสำหรับบันทึกการใช้งาน

MarkActive

void MarkActive(
  void
)

บันทึกกิจกรรมหรือก็คือรีเซ็ตตัวจับเวลาเมื่อไม่มีการใช้งาน

รีเซ็ตตัวจับเวลาเมื่อไม่มีการใช้งานเป็น 0

PendingReceiveLength

uint32_t PendingReceiveLength(
  void
)

แยกความยาวของข้อมูลที่ได้รับที่ยังไม่ได้ตอบรับ

รายละเอียด
การคืนสินค้า
จำนวนไบต์ในคิวรับที่ยังไม่ได้รับทราบกับ AckReceive(uint16_t len)

PendingSendLength

uint32_t PendingSendLength(
  void
)

แยกความยาวของข้อมูลที่รอการส่งครั้งแรก

รายละเอียด
การคืนสินค้า
จำนวนไบต์ที่ไม่ส่งในคิวการส่ง

PutBackReceivedData

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

พุชข้อความกลับไปที่ส่วนหัวของคิวการรับ

เมธอดนี้อาจถูกเรียกโดยเครื่องจัดการเหตุการณ์การรับข้อมูลเพื่อใส่ข้อมูลส่วนที่ยังไม่ได้ตอบรับกลับไปยังคิวการรับเท่านั้น ไม่มีการกำหนดความหมายการดำเนินการหากผู้เรียกใช้อยู่นอกขอบเขตของเครื่องจัดการเหตุการณ์การรับข้อมูล data ไม่ใช่ Weave::System::PacketBuffer ที่ให้ไว้กับเครื่องจัดการ หรือ data ไม่มีส่วนที่ยังไม่ได้รับทราบที่เหลืออยู่หลังจากไบต์ที่รับทราบโดยการเรียกใช้เมธอด AckReceive(uint16_t len) ก่อนหน้านี้

รายละเอียด
พารามิเตอร์
[out] data
ข้อความที่จะพุช
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ได้รับการตอบรับ
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้

ส่ง

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

ส่งข้อความบนการเชื่อมต่อ TCP

ระบบจะเรียกใช้เมธอด Weave::System::PacketBuffer::Free ในอาร์กิวเมนต์ data ไม่ว่าการส่งจะสำเร็จหรือล้มเหลวก็ตาม

รายละเอียด
พารามิเตอร์
[out] data
ข้อความที่จะส่ง
[out] push
หากเป็น true ให้ส่งทันทีหรืออยู่ในคิว
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ดึงข้อมูลที่อยู่และพอร์ตแล้ว
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

ตั้งค่าระยะหมดเวลาสำหรับ Connect เพื่อให้ดำเนินการสำเร็จหรือแสดงผลข้อผิดพลาด

รายละเอียด
พารามิเตอร์
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

ตั้งค่าตัวเลือกซ็อกเก็ต TCP_USER_TIMEOUT

TCPEndPoint::SetUserระยะหมดเวลา

เมื่อค่ามากกว่า 0 ค่าดังกล่าวจะระบุระยะเวลาสูงสุดเป็นมิลลิวินาทีที่ระบบอาจยังไม่ได้รับทราบข้อมูลที่ส่งก่อนที่ TCP จะบังคับให้ปิดการเชื่อมต่อที่เกี่ยวข้อง หากระบุค่าตัวเลือกเป็น 0 นั้น TCP จะใช้ค่าเริ่มต้นของระบบ โปรดดูรายละเอียดเพิ่มเติมที่ RFC 5482

รายละเอียด
พารามิเตอร์
[in] userTimeoutMillis
ค่าระยะหมดเวลาของผู้ใช้ Tcp เป็นมิลลิวินาที
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ดึงข้อมูลที่อยู่และพอร์ตแล้ว
INET_ERROR_NOT_IMPLEMENTED
การติดตั้งระบบไม่เสร็จสมบูรณ์
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น

ตั้งค่าตัวเลือกซ็อกเก็ตระยะหมดเวลาของผู้ใช้ TCP

เมื่อค่ามากกว่า 0 ค่าดังกล่าวจะระบุระยะเวลาสูงสุดเป็นมิลลิวินาทีที่ระบบอาจยังไม่ได้รับทราบข้อมูลที่ส่งก่อนที่ TCP จะบังคับให้ปิดการเชื่อมต่อที่เกี่ยวข้อง หากระบุค่าตัวเลือกเป็น 0 นั้น TCP จะใช้ค่าเริ่มต้นของระบบ โปรดดูรายละเอียดเพิ่มเติมที่ RFC 5482

หมายเหตุ: ระบบจะเรียกใช้เมธอดนี้ได้เมื่อปลายทางอยู่ในสถานะที่เชื่อมต่อแบบใดแบบหนึ่งเท่านั้น วิธีการนี้สามารถเรียกใช้ได้หลายครั้งเพื่อปรับช่วง Keepalive หรือจำนวนระยะหมดเวลา

ปิดการทำงาน

INET_ERROR Shutdown(
  void
)

เริ่มต้น TCP ปิดครึ่งหนึ่ง กล่าวคือ สิ้นสุดการส่ง

รายละเอียด
ผลลัพธ์
INET_NO_ERROR
สำเร็จ: ดึงข้อมูลที่อยู่และพอร์ตแล้ว
INET_ERROR_INCORRECT_STATE
สร้างการเชื่อมต่อ TCP ไม่ได้
other
ข้อผิดพลาดของระบบหรือแพลตฟอร์มอื่น