nl :: إنت :: TCPEndPoint
#include <src/inet/TCPEndPoint.h>
تمثل كائنات هذه الفئة نقاط نهاية نقل TCP.
ملخص
تضم طبقة Nest Inet طرقًا للتفاعل مع نقاط نهاية نقل TCP (مآخذ SOCK_STREAM على أنظمة Linux والمشتقة من BSD) أو كتل التحكم في بروتوكول LwIP TCP ، حيث تم تكوين النظام وفقًا لذلك.
ميراث
يرث من: NL :: :: آينت EndPointBasisالأنواع العامة | |
---|---|
@10 { | تعداد الحالة الديناميكية الأساسية لنقطة النهاية الأساسية. |
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* نوع من الاتصال وظيفة معالجة حدث خطأ قبول. |
OnConnectCompleteFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* نوع من وظيفة معالجة حدث إنشاء الاتصال. |
OnConnectionClosedFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* نوع من وظيفة معالجة حدث إنشاء الاتصال. |
OnConnectionReceivedFunct )(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) | typedefvoid(* نوع الاتصال تلقى وظيفة معالجة الحدث. |
OnDataReceivedFunct )(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) | typedefvoid(* نوع وظيفة معالجة حدث استقبال البيانات. |
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) | typedefvoid(* نوع وظيفة معالجة حدث نقل البيانات. |
OnPeerCloseFunct )(TCPEndPoint *endPoint) | typedefvoid(* نوع من وظيفة معالجة حدث الاستقبال نصف القريب. |
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) | typedefvoid(* نوع من وظيفة معالجة إشارة 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) | قم بتعطيل خيار TCP "البقاء على قيد الحياة". |
DisableReceive (void) | void تعطيل الاستقبال. |
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount) | قم بتمكين خيار 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 اضبط مهلة الاتصال بنجاح أو إرجاع خطأ. |
SetUserTimeout (uint32_t userTimeoutMillis) | قم بتعيين خيار مأخذ التوصيل TCP TCP_USER_TIMEOUT. |
Shutdown (void) | ابدأ بنصف بروتوكول TCP قريبًا ، بمعنى آخر ، انتهى من الإرسال. |
الأنواع العامة
@ 10
@10
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
تتم تهيئة الكائنات في الحالة "الجاهزة" ، انتقل إلى الحالات اللاحقة المقابلة لتبسيط حالات جهاز حالة النقل TCP.
ملاحظة: kBasisState_Closed
يتم تعيين تعداد الدولة ل kState_Ready
لأسباب ثنائي التوافق التاريخية. في القائمة kState_Closed
موجود لتحدد بشكل منفصل التمييز بين "لم يفتح بعد" و "سابقا فتحت مغلقة الآن" التي كانت موجودة سابقا في kState_Ready
و kState_Closed
الدول.
OnAcceptErrorFunct
void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)
نوع من الاتصال وظيفة معالجة حدث خطأ قبول.
توفير وظيفة من هذا النوع إلى OnAcceptError
عضو ان ينيب اتصال العملية أحداث خطأ القبول في endPoint
. و err
توفر حجة تفاصيل محددة حول نوع الخطأ.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
OnConnectCompleteFunct
void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)
نوع من وظيفة معالجة حدث إنشاء الاتصال.
توفير وظيفة من هذا النوع إلى OnConnectComplete
عضو مندوب لمعالجة الأحداث تأسيس اتصال على endPoint
. و err
حجة تميز الاتصالات الناجحة من الفشل.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
OnConnectionClosedFunct
void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
نوع من وظيفة معالجة حدث إنشاء الاتصال.
توفير وظيفة من هذا النوع إلى OnConnectionClosed
عضو مندوب للأحداث إنهاء اتصال العملية على endPoint
. و err
حجة تميز إنهاء ناجحة من الفشل.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
OnConnectionR ReceivedFunct
void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)
نوع الاتصال تلقى وظيفة معالجة الحدث.
توفير وظيفة من هذا النوع إلى OnConnectionReceived
عضو مندوب للأحداث استقبال اتصال العملية على listeningEndPoint
. نقطة النهاية المستلمة حديثا conEndPoint
يقع في عنوان IP peerAddr
ومنفذ TCP peerPort
.
تفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلمات |
|
OnDataReceivedFunct
void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)
نوع وظيفة معالجة حدث استقبال البيانات.
توفير وظيفة من هذا النوع إلى OnDataReceived
عضو مندوب للأحداث استقبال البيانات العملية على endPoint
حيث data
هو نص الرسالة التي وردت.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
معالج حدث استقبال البيانات يجب يقر البيانات التي تمت معالجتها باستخدام AckReceive
الأسلوب. و Free
يجب أيضا استدعاء أسلوب على المخزن المؤقت للبيانات ما لم PutBackReceivedData
يستخدم بدلا من ذلك.
OnDataSentFunct
void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
نوع وظيفة معالجة حدث نقل البيانات.
توفير وظيفة من هذا النوع إلى OnDataSent
عضو مندوب لأحداث عملية نقل البيانات على endPoint
حيث len
هو طول نص الرسالة تضاف إلى نافذة الإرسال TCP، والتي هي مؤهلة للحصول على إرسال بواسطة مكدس الشبكة الأساسي.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
OnPeerCloseFunct
void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)
نوع من وظيفة معالجة حدث الاستقبال نصف القريب.
توفير وظيفة من هذا النوع إلى OnPeerClose
عضو مندوب لمعالجة الأحداث إنهاء الاتصال على endPoint
.
تفاصيل | |||
---|---|---|---|
المعلمات |
|
OnTCPSendIdleChangedFunct
void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)
نوع من وظيفة معالجة إشارة TCP SendIdle التي تم تغييرها.
توفير وظيفة من هذا النوع إلى OnTCPSendIdleChanged
عضو مندوب لمعالجة الحدث من قناة الإرسال من TCPEndPoint تغيير الدولة بين خموله وعدم الخمول.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
السمات العامة
OnConnectComplete
OnConnectCompleteFunct OnConnectComplete
مفوض وظيفة معالجة حدث تأسيس اتصال نقطة النهاية.
عند الاتصال مغلق
OnConnectionClosedFunct OnConnectionClosed
مفوض وظيفة معالجة حدث إغلاق نقطة النهاية.
تم استلامه
OnConnectionReceivedFunct OnConnectionReceived
تلقي اتصال نقطة النهاية مفوض وظيفة معالجة الحدث.
تم استلام OnDataReceived
OnDataReceivedFunct OnDataReceived
مفوض وظيفة معالجة حدث استقبال الرسائل النصية لنقطة النهاية.
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
هو أكبر من مجموع المتميز البيانات الواردة غير المعترف به.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
| ||||||
إرجاع القيم |
|
ربط
INET_ERROR Bind( IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr )
اربط نقطة النهاية بعنوان IP للواجهة.
يربط نقطة النهاية بعنوان IP لواجهة الشبكة المحددة.
تفاصيل | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المعلمات |
| ||||||||||||
إرجاع القيم |
|
في LwIP ، يجب عدم استدعاء هذه الطريقة مع الحصول على قفل مكدس LwIP بالفعل.
يغلق
INET_ERROR Close( void )
بدء TCP الإغلاق الكامل ، بمعنى آخر ، انتهى بكل من الإرسال والاستلام.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
إرجاع القيم |
|
الاتصال
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.
تفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلمات |
| ||||||||
إرجاع القيم |
|
DisableKeepAlive
INET_ERROR DisableKeepAlive( void )
قم بتعطيل خيار TCP "البقاء على قيد الحياة".
TCPEndPoint :: DisableKeepAlive .
تعطيل تحقيقات TCP keepalive على اتصال TCP المرتبط.
تفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
إرجاع القيم |
|
ملاحظة: لا يمكن إلا أن يسمى هذا الأسلوب عند نقطة النهاية هو في واحدة من الدول متصل. هذه الطريقة لا تفعل شيئًا إذا لم يتم تمكين keepalives في نقطة النهاية.
تعطيل
void DisableReceive( void )
تعطيل الاستقبال.
تعطيل كافة معالجات الأحداث. سيتم الاعتراف بالبيانات المرسلة إلى نقطة نهاية تعطل الاستقبال حتى يتم استنفاد نافذة الاستلام.
EnableKeepAlive
INET_ERROR EnableKeepAlive( uint16_t interval, uint16_t timeoutCount )
قم بتمكين خيار TCP "البقاء على قيد الحياة".
TCPEndPoint :: EnableKeepAlive .
بدء تلقائيا نقل TCP شرائح "المحافظة على الحياة" تحقيق كل interval
ثواني. سوف إحباط اتصال تلقائيا بعد تلقي ردا سلبيا، أو بعد إرسال timeoutCount
شرائح التحقيق دون تلقي أي رد إيجابي.
تفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المعلمات |
| ||||||||||
إرجاع القيم |
|
راجع RFC 1122 ، القسم 4.2.3.6 للحصول على تفاصيل المواصفات.
قم بتمكين تحقيقات TCP keepalive على اتصال TCP المرتبط.
ملاحظة: لا يمكن إلا أن يسمى هذا الأسلوب عند نقطة النهاية هو في واحدة من الدول متصل. يمكن استدعاء هذه الطريقة عدة مرات لضبط فترة الاحتفاظ أو عدد المهلة.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
EnableNoDelay
INET_ERROR EnableNoDelay( void )
EnableNoDelay.
TCPEndPoint :: EnableNoDelay .
قم بإيقاف تشغيل خوارزمية التخزين المؤقت nagle في TCP عن طريق تعيين خيارات مأخذ التوصيل TCP_NODELAY.
التمكين
void EnableReceive( void )
تمكين الاستقبال.
تفعيل كل معالجات الأحداث. سيتم الاعتراف بالبيانات المرسلة إلى نقطة نهاية تعطل الاستقبال حتى يتم استنفاد نافذة الاستلام.
حر
void Free( void )
بدء (أو متابعة) إغلاق TCP الكامل ، وتجاهل الأخطاء.
يتم إرجاع الكائن إلى التجمع المجاني ، وتكون كافة مراجع المستخدم المتبقية غير صالحة فيما بعد.
GetLocalInfo
INET_ERROR GetLocalInfo( IPAddress *retAddr, uint16_t *retPort )
استخراج عنوان IP ومنفذ TCP لنقطة النهاية المحلية.
لا تستخدم NULL
القيم مؤشر لأي حجة.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
| ||||||
إرجاع القيم |
|
GetPeerInfo
INET_ERROR GetPeerInfo( IPAddress *retAddr, uint16_t *retPort ) const
استخراج عنوان IP ومنفذ TCP لنقطة النهاية البعيدة.
لا تستخدم NULL
القيم مؤشر لأي حجة.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
| ||||||
إرجاع القيم |
|
متصل
bool IsConnected( void ) const
استخرج ما إذا كان اتصال TCP قد تم إنشاؤه.
استمع
INET_ERROR Listen( uint16_t backlog )
جهز نقطة النهاية لتلقي رسائل TCP.
إذا State
بالفعل kState_Listening
، ثم يتم تنفيذ أي عملية، وإلا فإن State
ومن المقرر أن kState_Listening
وأعدت نقطة النهاية على الرسائل TCP الواردة، وفقا لدلالات المنصة.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
| ||||
إرجاع القيم |
|
على بعض الأنظمة الأساسية، و backlog
عدم استخدام الحجة (يتم إصلاح عمق قائمة الانتظار، اتصال واحد فقط قد يكون مقبولا في كل مرة).
في أنظمة LwIP ، يجب عدم استدعاء هذه الطريقة مع تأمين مكدس LwIP المكتسب بالفعل
LogId
uint16_t LogId( void )
احصل على معرف لنقطة النهاية.
تفاصيل | |
---|---|
عائدات | إرجاع معرّف فريد غير شفاف لسجلات الاستخدام. |
مارك أكتيف
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)
الأسلوب.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
| ||||
إرجاع القيم |
|
إرسال
INET_ERROR Send( Weave::System::PacketBuffer *data, bool push )
إرسال رسالة نصية على اتصال TCP.
و Weave::System::PacketBuffer::Free
يسمى الأسلوب على data
الحجة بغض النظر عن ما إذا كان نقل ناجحا أو فشل.
تفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
| ||||
إرجاع القيم |
|
SetConnectTimeout
void SetConnectTimeout( const uint32_t connTimeoutMsecs )
اضبط مهلة الاتصال بنجاح أو إرجاع خطأ.
تفاصيل | |||
---|---|---|---|
المعلمات |
|
SetUserTimeout
INET_ERROR SetUserTimeout( uint32_t userTimeoutMillis )
قم بتعيين خيار مأخذ التوصيل TCP TCP_USER_TIMEOUT.
TCPEndPoint :: SetUserTimeout .
عندما تكون القيمة أكبر من 0 ، فإنها تحدد الحد الأقصى من الوقت بالمللي ثانية الذي قد تظل فيه البيانات المرسلة غير معترف بها قبل أن يقوم TCP بإغلاق الاتصال المقابل بالقوة. إذا تم تحديد قيمة الخيار على أنها 0 ، فسيقوم TCP باستخدام القيمة الافتراضية للنظام. راجع RFC 5482 للحصول على مزيد من التفاصيل.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
| ||||||
إرجاع القيم |
|
اضبط خيار مأخذ توصيل TCP user timeout.
عندما تكون القيمة أكبر من 0 ، فإنها تحدد الحد الأقصى من الوقت بالمللي ثانية الذي قد تظل فيه البيانات المرسلة غير معترف بها قبل أن يغلق TCP الاتصال المقابل بالقوة. إذا تم تحديد قيمة الخيار على أنها 0 ، فسيستخدم TCP القيمة الافتراضية للنظام. راجع RFC 5482 للحصول على مزيد من التفاصيل.
ملاحظة: لا يمكن إلا أن يسمى هذا الأسلوب عند نقطة النهاية هو في واحدة من الدول متصل. يمكن استدعاء هذه الطريقة عدة مرات لضبط فترة الاحتفاظ أو عدد المهلة.
اغلق
INET_ERROR Shutdown( void )
ابدأ بنصف بروتوكول TCP قريبًا ، بمعنى آخر ، انتهى من الإرسال.
تفاصيل | |||||||
---|---|---|---|---|---|---|---|
إرجاع القيم |
|