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

เริ่มส่งกลุ่มการตรวจสอบ "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 TCP_USER_TIMEOUT

TCPEndPoint::SetUserTimeout

เมื่อค่ามากกว่า 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
ข้อผิดพลาดเกี่ยวกับระบบหรือแพลตฟอร์มอื่น