ไม่มี:: ไอเน็ต:: 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(*
ประเภทของฟังก์ชันการจัดการเหตุการณ์การรับสัญญาณแบบ half-closed
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) typedef
void(*
ประเภทของ TCP SendIdle เปลี่ยนฟังก์ชันการจัดการสัญญาณ

คุณลักษณะสาธารณะ

OnAcceptError
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การยอมรับการเชื่อมต่อของปลายทาง
OnConnectComplete
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์การจัดตั้งการเชื่อมต่อของปลายทาง
OnConnectionClosed
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์ปิดของปลายทาง
OnConnectionReceived
การเชื่อมต่อปลายทางได้รับมอบหมายฟังก์ชันการจัดการเหตุการณ์
OnDataReceived
ผู้รับมอบสิทธิ์จัดการเหตุการณ์การรับข้อความของจุดปลายทาง
OnDataSent
ผู้รับมอบสิทธิ์จัดการเหตุการณ์การส่งข้อความของข้อความปลายทาง
OnPeerClose
ผู้รับมอบสิทธิ์ฟังก์ชันการจัดการเหตุการณ์แบบ half-close ของปลายทาง
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)
ปิดใช้งานตัวเลือก "รักษาชีวิต" ของ TCP
DisableReceive (void)
void
ปิดการใช้งานแผนกต้อนรับ
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount)
เปิดใช้งานตัวเลือก "รักษาชีวิต" ของ TCP
EnableNoDelay (void)
เปิดใช้งาน NoDelay
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
ตั้งค่าการหมดเวลาสำหรับการเชื่อมต่อให้สำเร็จหรือส่งกลับข้อผิดพลาด
SetUserTimeout (uint32_t userTimeoutMillis)
ตั้งค่าตัวเลือกซ็อกเก็ต TCP TCP_USER_TIMEOUT
Shutdown (void)
เริ่มต้น TCP half close กล่าวอีกนัยหนึ่งคือเสร็จสิ้นด้วยการส่ง

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

@10

 @10

สถานะไดนามิกพื้นฐานของปลายทางพื้นฐาน

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

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

คุณสมบัติ
kState_Bound

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

kState_Closed

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

kState_Closing

ปลายทางปิดแบบสองทิศทาง

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 ที่เชื่อมโยงกับเหตุการณ์

บนTCPSendIdleChangedFunct

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

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

ให้การทำงานประเภทนี้จะเป็น OnTCPSendIdleChanged สมาชิกผู้รับมอบสิทธิ์ในการดำเนินการจัดกิจกรรมของช่องส่งของ TCPEndPoint เปลี่ยนสถานะระหว่างการใช้งานและไม่ได้ใช้งาน

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

คุณลักษณะสาธารณะ

OnAcceptError

OnAcceptErrorFunct OnAcceptError

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

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

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

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

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

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

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

OnDataReceived

OnDataReceivedFunct OnDataReceived

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

OnDataSent

OnDataSentFunct OnDataSent

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

OnPeerClose

OnPeerCloseFunct OnPeerClose

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

บนTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

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

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

รับเปิดใช้งาน

bool ReceiveEnabled

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

สถานะ

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

สถานะไดนามิกพื้นฐานของปลายทางพื้นฐาน

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

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

งานสาธารณะ

ยกเลิก

void Abort(
  void
)

ปิดปลายทางโดยไม่ได้ตั้งใจ กล่าวคือ ส่งแพ็กเก็ต RST

รับ

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

ปิดใช้งานตัวเลือก "รักษาชีวิต" ของ TCP

TCPEndPoint :: DisableKeepAlive

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

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

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

ปิดการใช้งานรับ

void DisableReceive(
  void
)

ปิดการใช้งานแผนกต้อนรับ

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

เปิดใช้งานKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

เปิดใช้งานตัวเลือก "รักษาชีวิต" ของ TCP

TCPEndPoint :: EnableKeepAlive

เริ่มต้นโดยอัตโนมัติส่ง TCP "keep-ชีวิต" ส่วนการสอบสวนทุก 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 สำหรับรายละเอียดข้อมูลจำเพาะ

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

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

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

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

เปิดใช้งาน NoDelay

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 โต้แย้งไม่ได้ใช้ (ความลึกของคิวได้รับการแก้ไขเพียงการเชื่อมต่อหนึ่งอาจได้รับการยอมรับในเวลา)

ในระบบ LwIP จะต้องไม่เรียกเมธอดนี้ด้วย LwIP stack lock ที่ได้รับมาแล้ว

LogId

uint16_t LogId(
  void
)

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

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

MarkActive

void MarkActive(
  void
)

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

รีเซ็ตตัวจับเวลาไม่ได้ใช้งานเป็นศูนย์

รอดำเนินการรับความยาว

uint32_t PendingReceiveLength(
  void
)

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

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

รอดำเนินการส่งความยาว

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
)

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

รายละเอียด
พารามิเตอร์
[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 half close กล่าวอีกนัยหนึ่งคือเสร็จสิ้นด้วยการส่ง

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