nl::Inet::TCPEndPoint

#include <src/inet/TCPEndPoint.h>

تمثل الكائنات من هذه الفئة نقاط نهاية نقل بروتوكول التحكم بالنقل.

ملخّص

تضم بروتوكول 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) تعريف الكتابة
void(*
نوع دالة معالجة حدث خطأ قبول الاتصال.
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err) تعريف الكتابة
void(*
نوع دالة التعامل مع أحداث إنشاء الاتصال.
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) تعريف الكتابة
void(*
نوع دالة التعامل مع أحداث إنشاء الاتصال.
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) تعريف الكتابة
void(*
نوع الاتصال الذي تم تلقّيه وظيفة معالجة الأحداث.
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) تعريف الكتابة
void(*
نوع دالة معالجة حدث استقبال البيانات.
OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len) تعريف الكتابة
void(*
نوع دالة معالجة حدث نقل البيانات.
OnPeerCloseFunct)(TCPEndPoint *endPoint) تعريف الكتابة
void(*
نوع وظيفة معالجة حدث استقبال نصف مغلق.
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) تعريف الكتابة
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)
إيقاف ميزة "keep-alive" في بروتوكول التحكم بالنقل .
DisableReceive(void)
void
إيقاف الاستقبال
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
تفعيل "keep-alive" لبروتوكول TCP .
EnableNoDelay(void)
EnableNoDelay (تفعيل 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_USER_')}>.
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 غير نشطة، وبخلاف ذلك.

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

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
)

إيقاف ميزة "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
)

تفعيل "keep-alive" لبروتوكول TCP .

TCPEndPoint::EnableKeepAlive.

بدء نقل TCP تلقائيًا "keep-alive" افحص الأجزاء كل 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
)

EnableNoDelay (تفعيل NoDelay).

TCPEndPoint::EnableNoDelay.

أوقف تشغيل خوارزمية التخزين المؤقت لبروتوكول nagle في بروتوكول التحكم بالنقل من خلال تعيين خيارات مقبس التوصيل TCP_NO الجو.

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 ويتم إعداد نقطة النهاية لتلقّي رسائل بروتوكول التحكم بالنقل، وفقًا لدلالات النظام الأساسي.

التفاصيل
المعلمات
[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_')}>.

TCPEndPoint::SetUserTimeout.

عندما تكون القيمة أكبر من 0، فإنها تحدد الحد الأقصى لمقدار الوقت بالمللي ثانية والذي قد تظل فيه البيانات المنقولة بدون إعلامية قبل أن يغلق بروتوكول التحكم في الإرسال الاتصال المتجاوب. إذا تم تحديد قيمة الخيار على 0، فسيستخدم بروتوكول التحكم في الإرسال (TCP) الإعداد الافتراضي للنظام. للحصول على مزيد من التفاصيل، يمكنك الاطّلاع على 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
خطأ آخر في النظام أو النظام الأساسي