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
}
تعداد
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
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
تعمل وظيفة معالجة الأحداث على تفويض إشارة نقطة النهاية عندما يتغير وقت عدم نشاط قناة الإرسال لاتصال بروتوكول التحكم بالنقل.
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 "keep-alive".
DisableReceive(void)
void
إيقاف الاستقبال
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
قم بتمكين خيار TCP "keep-alive".
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)
تحضير نقطة النهاية لاستلام رسائل بروتوكول التحكم بالنقل.
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_USER_duration.
Shutdown(void)
بمعنى آخر، ابدأ TCP نصف القصور، بمعنى آخر، انتهى من الإرسال.

الأنواع العلنية

@10

 @10

الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.

وتتم تهيئة الكائنات في حالة "جاهزة"، وتنتقل إلى الحالات اللاحقة المقابلة لتبسيط حالات جهاز حالة النقل في بروتوكول التحكم بالنقل.

ملاحظة:يتم ربط تعداد الحالة 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 المرتبطة بالحدث.

OnTCPSendIdleChangedFunct

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

تم تغيير نوع وظيفة معالجة الإشارة في TCP SendIdle.

قدِّم دالة من هذا النوع للعضو المفوَّض في OnTCPSendIdleChanged لمعالجة حدث قناة الإرسال في حالة تغيير TCPEndPoint بين حالة غير نشطة وغير نشطة.

التفاصيل
المَعلمات
[in] endPoint
نقطة نهاية TCP المرتبطة بالحدث.
[in] isIdle
صحيح إذا كانت قناة الإرسال لنقطة نهاية TCP هي غير نشطة، وإلا فإن القيمة false.

السمات العامة

OnAcceptError

OnAcceptErrorFunct OnAcceptError

تفويض دالة معالجة حدث قبول الاتصال لنقطة النهاية.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

تفويض دالة معالجة حدث إنشاء اتصال نقطة النهاية.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

تفويض دالة معالجة الأحداث المغلقة في نقطة النهاية.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

تفويض وظيفة معالجة الأحداث لاتصال نقطة النهاية

OnDataReceived

OnDataReceivedFunct OnDataReceived

مفوّض دالة معالجة حدث استقبال نص رسالة نقطة النهاية.

OnDataSent

OnDataSentFunct OnDataSent

تفويض وظيفة معالجة حدث إرسال رسالة نص الرسالة في نقطة النهاية.

OnPeerClose

OnPeerCloseFunct OnPeerClose

تفويض دالة معالجة الأحداث في نصف نقطة النهاية لنقطة النهاية.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

تعمل وظيفة معالجة الأحداث على تفويض إشارة نقطة النهاية عندما يتغير وقت عدم نشاط قناة الإرسال لاتصال بروتوكول التحكم بالنقل.

يتم استخدام ذلك بواسطة الطبقات العليا لاتخاذ الإجراءات المناسبة بناءً على ما إذا كان قد تم تسليم البيانات المرسلة إلى النظير بشكل موثوق.

ReceiveEnabled

bool ReceiveEnabled

مفتاح تحكّم يشير إلى ما إذا كان التطبيق يتلقى البيانات أم لا.

الحالة

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

الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.

وتتم تهيئة الكائنات في حالة "جاهزة"، وتنتقل إلى الحالات اللاحقة المقابلة لتبسيط حالات جهاز حالة النقل في بروتوكول التحكم بالنقل.

ملاحظة:يتم ربط تعداد الحالة 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
)

قم بتعطيل خيار TCP "keep-alive".

TCPEndPoint::DisableKeepAlive

إيقاف اختبارات التحقّق من اتصال 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
)

قم بتمكين خيار TCP "keep-alive".

TCPEndPoint::EnableKeepAlive

بدء الإرسال التلقائي لأجزاء اختبار "الحفاظ على الحياة" لبروتوكول 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 للحصول على تفاصيل المواصفات.

يمكنك تفعيل اختبارات التحقّق من اتصال TCP على اتصال TCP المرتبط.

ملاحظة: لا يمكن استدعاء هذه الطريقة إلا عندما تكون نقطة النهاية في إحدى الحالات المرتبطة. يمكن استدعاء هذه الطريقة عدة مرات لضبط الفاصل الزمني لرسالة التحقّق من الاتصال أو عدد المهلات.

التفاصيل
المَعلمات
interval
يشير ذلك المصطلح إلى الفاصل الزمني (بالثواني) بين اختبارات التحقّق من الاتصال المباشر. تتحكم هذه القيمة أيضًا في الوقت بين آخر حزمة بيانات تم إرسالها وإرسال أول فحوصات التحقّق من الاتصال.
timeoutCount
الحد الأقصى لعدد التحقيقات التي لم تتم الموافقة عليها قبل اعتبار الاتصال قد فشل.

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

تفعيلNoDelay.

TCPEndPoint::EnableNoDelay

قم بإيقاف تشغيل خوارزمية التخزين المؤقت في بروتوكول التحكم بالنقل من خلال ضبط خيارات مقبس TCP_NOAGENT.

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
)

تحضير نقطة النهاية لاستلام رسائل بروتوكول التحكم بالنقل.

إذا كانت قيمة السمة State هي kState_Listening من قبل، لن يتم تنفيذ أي عملية، وإلا سيتم ضبط State على kState_Listening ويتم إعداد نقطة النهاية لتلقّي رسائل بروتوكول TCP، وفقًا لدلالات النظام الأساسي.

التفاصيل
المَعلمات
[in] backlog
الحد الأقصى لعمق قائمة انتظار قبول الاتصال
قيم الإرجاع
INET_NO_ERROR
ناجح: نقطة النهاية جاهزة لتلقّي الرسائل.
INET_ERROR_INCORRECT_STATE
نقطة النهاية تستمع بالفعل.

على بعض الأنظمة الأساسية، لا يتم استخدام الوسيطة backlog (يتم إصلاح مدى عمق قائمة الانتظار، ولا يمكن قبول اتصال واحد فقط في كل مرة).

على أنظمة LwIP، يجب عدم استدعاء هذه الطريقة باستخدام قفل حزمة LwIP الذي تم الحصول عليه من قبل

LogId

uint16_t LogId(
  void
)

الحصول على معرّف لنقطة النهاية.

التفاصيل
المرتجعات
تعرض معرّفًا فريدًا مبهمًا لسجلّات الاستخدام.

MarkActive

void MarkActive(
  void
)

بمعنى آخر، عليك ملاحظة النشاط، وإعادة ضبط موقّت عدم النشاط.

أعِد ضبط موقّت وضع عدم النشاط إلى الصفر.

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
)

يمكنك ضبط المهلة قبل نجاح عملية الربط أو عرض خطأ.

التفاصيل
المَعلمات
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

اضبط خيار مقبس توصيل TCP_USER_duration.

TCPEndPoint::SetUserTimeout.

عندما تكون القيمة أكبر من 0، فإنها تحدد الحد الأقصى لمقدار الوقت بالمللي ثانية الذي قد تظل البيانات المنقولة بدون إقرار بها قبل أن يغلق بروتوكول التحكم بالنقل الاتصال المتجاوب بالقوة. إذا تم تحديد قيمة الخيار كـ 0، سيستخدم بروتوكول التحكم بالنقل القيمة الإعداد التلقائي للنظام. راجع RFC 5482 للحصول على مزيد من التفاصيل.

التفاصيل
المَعلمات
[in] userTimeoutMillis
قيمة مهلة مستخدم Tcp بالمللي ثانية.
قيم الإرجاع
INET_NO_ERROR
نجاح: تم استخراج العنوان والمنفذ.
INET_ERROR_NOT_IMPLEMENTED
لم تكتمل تنفيذ النظام.
other
خطأ آخر في النظام أو في النظام الأساسي

اضبط خيار مقبس مهلة مستخدم TCP.

عندما تكون القيمة أكبر من 0، فإنها تحدد الحد الأقصى لمقدار الوقت بالمللي ثانية الذي قد تظل البيانات المنقولة بدون إقرار بها قبل أن يغلق بروتوكول التحكم بالنقل الاتصال المتجاوب بالقوة. إذا تم تحديد قيمة الخيار كـ 0، سيستخدم بروتوكول التحكم بالنقل القيمة الإعداد التلقائي للنظام. راجع RFC 5482 للحصول على مزيد من التفاصيل.

ملاحظة: لا يمكن استدعاء هذه الطريقة إلا عندما تكون نقطة النهاية في إحدى الحالات المرتبطة. يمكن استدعاء هذه الطريقة عدة مرات لضبط الفاصل الزمني لرسالة التحقّق من الاتصال أو عدد المهلات.

إيقاف التشغيل

INET_ERROR Shutdown(
  void
)

بمعنى آخر، ابدأ TCP نصف القصور، بمعنى آخر، انتهى من الإرسال.

التفاصيل
قيم الإرجاع
INET_NO_ERROR
نجاح: تم استخراج العنوان والمنفذ.
INET_ERROR_INCORRECT_STATE
لم يتم إنشاء اتصال TCP.
other
خطأ آخر في النظام أو في النظام الأساسي