Google is committed to advancing racial equity for Black communities. See how.

TCP

تتضمن هذه الوحدة الوظائف التي تتحكم في اتصالات TCP.

ملخص

التعداد

anonymous enum تعداد
هذا يعرف تعداد الأعلام التي تم تمريرها إلى otTcpConnect () .
anonymous enum تعداد
ويعرف هذا التعداد الأعلام التي تم تمريرها إلى otTcpSendByReference .
otTcpDisconnectedReason تعداد
otTcpIncomingConnectionAction {
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT ,
OT_TCP_INCOMING_CONNECTION_ACTION_DEFER ,
OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE
}
تعداد
يحدد هذا التعداد إجراءات الاتصال الواردة.

النوع

otLinkedBuffer typedef
هيكل مخزن مؤقت مرتبط للاستخدام مع TCP.
otTcpAcceptDone )(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer) typedef
void(*
يشير رد الاتصال هذا إلى أن اتصال TCP جاهز الآن للاتصال ثنائي الاتجاه.
otTcpAcceptReady )(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto) typedef
يشير رد الاتصال هذا إلى وصول اتصال وارد يطابق مستمع TCP هذا.
otTcpBytesAcked )(otTcpEndpoint *aEndpoint, size_t aNumBytes) typedef
void(*
هذا رد بإعلام التطبيق الذي أول aNumBytes في إرسال عازلة وقد اعترف من قبل النظير اتصال وأن ذاكرتهم الأساسية يمكن استصلاحها من قبل التطبيق.
otTcpDisconnected )(otTcpEndpoint *aEndpoint, otTcpDisconnectedReason aReason) typedef
void(*
يشير رد الاتصال هذا إلى أن الاتصال مقطوع ولا يجب استخدامه بعد الآن ، أو أن الاتصال قد دخل في حالة TIME-WAIT.
otTcpDisconnectedReason typedef
enum otTcpDisconnectedReason
otTcpEndpoint typedef
otTcpEndpointInitializeArgs typedef
هذا الهيكل يتضمن الحجج ل otTcpEndpointInitialize () وظيفة.
otTcpEstablished )(otTcpEndpoint *aEndpoint) typedef
void(*
يقوم رد الاتصال هذا بإعلام التطبيق بأن اتصال TCP 3-way قد اكتمل وأن الاتصال قد تم إنشاؤه الآن.
otTcpIncomingConnectionAction typedef
يحدد هذا التعداد إجراءات الاتصال الواردة.
otTcpListener typedef
otTcpListenerInitializeArgs typedef
هذا الهيكل يتضمن الحجج ل otTcpListenerInitialize () وظيفة.
otTcpReceiveAvailable )(otTcpEndpoint *aEndpoint, size_t aBytesAvailable, bool aEndOfStream, size_t aBytesRemaining) typedef
void(*
يشير رد النداء هذا إلى عدد البايتات المتاحة للاستهلاك من المخزن المؤقت للاستلام.
otTcpSendDone )(otTcpEndpoint *aEndpoint, otLinkedBuffer *aData) typedef
void(*
هذا رد بإعلام التطبيق الذي البيانات في المقدمة aData وقد تم الاعتراف من قبل النظير اتصال وأن aData والبيانات التي يحتوي يمكن استصلاحها من قبل التطبيق.
otTcpSendReady )(otTcpEndpoint *aEndpoint) typedef
void(*
يُعلم رد الاتصال هذا التطبيق أنه إذا تمت إضافة البيانات إلى مخزن الإرسال المؤقت ، فسيتم إرسال بعض منها على الفور دون تأخير ، بدلاً من وضعها في قائمة الانتظار للإرسال بمجرد أن يقوم النظير بإرسال بعض البيانات.

المهام

otTcpAbort ( otTcpEndpoint *aEndpoint)
ينهي قسراً اتصال TCP المرتبط بنقطة نهاية TCP هذه.
otTcpBind ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName)
يربط نقطة نهاية TCP بعنوان IP والمنفذ.
otTcpCommitReceive ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
بإعلام مكدس TCP أن التطبيق يحتوي معالجة الانتهاء aNumBytes بايت من البيانات في بداية تلقي العازلة وأن الحاجة كومة TCP لن يستمر الحفاظ على تلك بايت في الحصول على العازلة.
otTcpConnect ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName, uint32_t aFlags)
يسجل المضيف والمنفذ البعيد لهذا الاتصال.
otTcpEndpointDeinitialize ( otTcpEndpoint *aEndpoint)
إلغاء تهيئة نقطة نهاية TCP هذه.
otTcpEndpointGetContext ( otTcpEndpoint *aEndpoint)
void *
يحصل على مؤشر السياق الذي كان مرتبطا مع aEndpoint على التهيئة.
otTcpEndpointGetInstance ( otTcpEndpoint *aEndpoint)
يحصل على otInstance الذي كان مرتبطا مع aEndpoint على التهيئة.
otTcpEndpointInitialize ( otInstance *aInstance, otTcpEndpoint *aEndpoint, otTcpEndpointInitializeArgs *aArgs)
يقوم بتهيئة نقطة نهاية TCP.
otTcpGetLocalAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
يحصل على مؤشر إلى المنفذ والمضيف المحلي لنقطة نهاية TCP.
otTcpGetPeerAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
يحصل على مؤشر للمضيف والمنفذ النظير لنقطة نهاية TCP.
otTcpListen ( otTcpListener *aListener, const otSockAddr *aSockName)
يتسبب في اتصالات TCP الواردة التي تطابق عنوان IP المحدد والمنفذ لتشغيل عمليات رد الاتصال الخاصة بمستمع TCP.
otTcpListenerDeinitialize ( otTcpListener *aListener)
ينهي مستمع TCP هذا.
otTcpListenerGetContext ( otTcpListener *aListener)
void *
يحصل على مؤشر السياق الذي كان مرتبطا مع aListener على التهيئة.
otTcpListenerGetInstance ( otTcpListener *aListener)
يحصل على otInstance الذي كان مرتبطا مع aListener على التهيئة.
otTcpListenerInitialize ( otInstance *aInstance, otTcpListener *aListener, otTcpListenerInitializeArgs *aArgs)
يقوم بتهيئة مستمع TCP.
otTcpReceiveByReference (const otTcpEndpoint *aEndpoint, const otLinkedBuffer **aBuffer)
يزود التطبيق بسلسلة عازلة مرتبطة تشير إلى البيانات الموجودة حاليًا في المخزن المؤقت لاستقبال TCP.
otTcpReceiveContiguify ( otTcpEndpoint *aEndpoint)
يعيد تنظيم المخزن المؤقت للاستلام ليكون متجاورًا تمامًا في الذاكرة.
otTcpSendByExtension ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
يضيف البيانات إلى المخزن المؤقت ترسل عن طريق تمديد مدة المباراة النهائية otLinkedBuffer في المخزن المؤقت الإرسال بمقدار معين.
otTcpSendByReference ( otTcpEndpoint *aEndpoint, otLinkedBuffer *aBuffer, uint32_t aFlags)
وأشارت البيانات يضيف المشار إليه من قبل المخزن المؤقت مرتبطة بواسطة aBuffer إلى المخزن المؤقت الإرسال.
otTcpSendEndOfStream ( otTcpEndpoint *aEndpoint)
يُعلم نظير الاتصال أن نقطة نهاية TCP هذه لن ترسل المزيد من البيانات.
otTcpStopListening ( otTcpListener *aListener)
يتسبب في توقف مستمع TCP هذا عن الاستماع للاتصالات الواردة.

الهياكل

otLinkedBuffer

هيكل مخزن مؤقت مرتبط للاستخدام مع TCP.

otTcpEndpoint

يمثل هذا الهيكل نقطة نهاية TCP.

otTcpEndpointInitializeArgs

هذا الهيكل يتضمن الحجج ل otTcpEndpointInitialize () وظيفة.

otTcpListener

يمثل هذا الهيكل مستمع TCP.

otTcpListenerInitializeArgs

هذا الهيكل يتضمن الحجج ل otTcpListenerInitialize () وظيفة.

التعداد

تعداد مجهول

 anonymous enum

هذا يعرف تعداد الأعلام التي تم تمريرها إلى otTcpConnect () .

تعداد مجهول

 anonymous enum

ويعرف هذا التعداد الأعلام التي تم تمريرها إلى otTcpSendByReference .

otTcpDisconnectedReason

 otTcpDisconnectedReason

otTcpIncomingConnectionAction

 otTcpIncomingConnectionAction

يحدد هذا التعداد إجراءات الاتصال الواردة.

ويستخدم هذا في otTcpAcceptReady) ( الاستدعاء.

الخصائص
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT

اقبل الاتصال الوارد.

OT_TCP_INCOMING_CONNECTION_ACTION_DEFER

تأجيل (تجاهل بصمت) الاتصال الوارد.

OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE

رفض الاتصال الوارد.

النوع

otLinkedBuffer

struct otLinkedBuffer otLinkedBuffer

هيكل مخزن مؤقت مرتبط للاستخدام مع TCP.

وحيد otLinkedBuffer هيكل يحيل الى مجموعة من البايتات في الذاكرة، عبر mData وmLength. يستخدم مجال mNext لتشكيل سلسلة من otLinkedBuffer الهياكل.

otTcpAccept تم

void(* otTcpAcceptDone)(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer)

يشير رد الاتصال هذا إلى أن اتصال TCP جاهز الآن للاتصال ثنائي الاتجاه.

في حالة TCP Fast Open ، قد يكون هذا قبل اكتمال اتصال TCP. يتم تزويد التطبيق بمؤشرات السياق لكل من مستمع TCP الذي قبل الاتصال ونقطة نهاية TCP التي تم قبوله فيها. السياق المتوفر هو السياق المرتبط بمستمع TCP.

تفاصيل
العوامل
[in] aListener
مستمع TCP الذي يطابق الاتصال الوارد.
[in] aEndpoint
نقطة نهاية TCP التي تم قبول الاتصال الوارد فيها.
[in] aPeer
المضيف والمنفذ الذي نشأ منه الاتصال الوارد.

otTcpAcceptReady

otTcpIncomingConnectionAction(* otTcpAcceptReady)(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto)

يشير رد الاتصال هذا إلى وصول اتصال وارد يطابق مستمع TCP هذا.

الاستجابة النموذجية للتطبيق هي قبول الاتصال الوارد. وهو يفعل ذلك من خلال ملء aAcceptInto مع مؤشر إلى otTcpEndpoint إلى التي لقبول اتصال وارد. هذا otTcpEndpoint يجب أن يكون بالفعل تهيئة باستخدام otTcpEndpointInitialize () . ثم يقوم التطبيق بإرجاع OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT.

بدلاً من ذلك ، يمكن للتطبيق رفض قبول الاتصال الوارد. هناك طريقتان للتطبيق للقيام بذلك. أولاً ، إذا قام التطبيق بإرجاع OT_TCP_INCOMING_CONNECTION_ACTION_DEFER ، فإن OpenThread يتجاهل بصمت طلب إنشاء الاتصال ؛ من المحتمل أن يقوم نظير الاتصال بإعادة إرسال الطلب ، وعند هذه النقطة سيتم استدعاء رد الاتصال مرة أخرى. يعد هذا أمرًا ذا قيمة إذا لم تكن الموارد متاحة حاليًا لقبول الاتصال ، ولكنها قد تكون متاحة عندما يعيد نظير الاتصال إرسال محاولة إنشاء الاتصال الخاصة به. ثانيًا ، إذا قام التطبيق بإرجاع OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE ، فسيرسل OpenThread رسالة "رفض الاتصال" إلى المضيف الذي حاول إنشاء اتصال. إذا كان التطبيق ينخفض اتصال وارد، فإنه غير مطلوب لملء aAcceptInto .

تفاصيل
العوامل
[in] aListener
مستمع TCP الذي يطابق الاتصال الوارد.
[in] aPeer
المضيف والمنفذ الذي ينشأ منه الاتصال الوارد.
[out] aAcceptInto
نقطة نهاية TCP التي يتم قبول الاتصال الوارد إليها.
عائدات
وصف كيفية التعامل مع الاتصال الوارد.

otTcpBytesAcked

void(* otTcpBytesAcked)(otTcpEndpoint *aEndpoint, size_t aNumBytes)

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

رد الاتصال هذا ليس ضروريًا لعملية TCP الصحيحة. يمكن لمعظم التطبيقات تعتمد فقط على otTcpSendDone () الاستدعاء. إذا كان أحد التطبيقات يريد ملاحظات دقيقة حيث تصبح الذاكرة في مخزن الإرسال المؤقت متاحة مرة أخرى (بدلاً من انتظار توفر قيمة بيانات المخزن المؤقت المرتبط بالكامل) أو بعض المؤشرات حول ما إذا كان الاتصال يحرز تقدمًا ، فيمكنه تسجيل رد الاتصال هذا .

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP للاتصال.
[in] aNumBytes
عدد البايتات التي أقرها نظير الاتصال حديثًا.

otTcp غير متصل

void(* otTcpDisconnected)(otTcpEndpoint *aEndpoint, otTcpDisconnectedReason aReason)

يشير رد الاتصال هذا إلى أن الاتصال مقطوع ولا يجب استخدامه بعد الآن ، أو أن الاتصال قد دخل في حالة TIME-WAIT.

ويمكن أن يحدث إذا (بادر بالدعوة محاولة تأسيس اتصال ) otTcpConnect ( ) فشل، أو أي نقطة بعد ذلك (على سبيل المثال، إذا كانت مهلة الاتصال أو شريحة RST استلام من النظير اتصال). مرة واحدة هذه الحرائق رد، جميع الموارد أن تطبيق قدمت لهذا الاتصال (أي، أي otLinkedBuffers والذاكرة التي تشير إليها، ولكن ليس نقطة نهاية TCP نفسها أو في الفضاء لتلقي المخازن المؤقتة) يمكن استصلاحها. في حالة دخول اتصال إلى حالة TIME-WAIT ، يتم استدعاء رد الاتصال هذا مرتين ، مرة واحدة عند الدخول إلى حالة TIME-WAIT (مع OT_TCP_DISCONNECTED_REASON_TIME_WAIT ، ومرة ​​أخرى عندما تنتهي حالة TIME-WAIT (مع OT_TCP_DISCONNECTED_REASON_NORMAL).

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP التي تم فقد الاتصال بها.
[in] aReason
سبب فقد الاتصال.

otTcpDisconnectedReason

enum otTcpDisconnectedReason otTcpDisconnectedReason

otTcpEndpoint

struct otTcpEndpoint otTcpEndpoint

otTcpEndpointInitializeArgs

struct otTcpEndpointInitializeArgs otTcpEndpointInitializeArgs

هذا الهيكل يتضمن الحجج ل otTcpEndpointInitialize () وظيفة.

تأسست otTcp

void(* otTcpEstablished)(otTcpEndpoint *aEndpoint)

يقوم رد الاتصال هذا بإعلام التطبيق بأن اتصال TCP 3-way قد اكتمل وأن الاتصال قد تم إنشاؤه الآن.

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP التي تم تأسيس اتصالها الآن.

otTcpIncomingConnectionAction

enum otTcpIncomingConnectionAction otTcpIncomingConnectionAction

يحدد هذا التعداد إجراءات الاتصال الواردة.

ويستخدم هذا في otTcpAcceptReady) ( الاستدعاء.

otTcpListener

struct otTcpListener otTcpListener

otTcpListenerInitializeArgs

struct otTcpListenerInitializeArgs otTcpListenerInitializeArgs

هذا الهيكل يتضمن الحجج ل otTcpListenerInitialize () وظيفة.

otTcpReceiveAvailable

void(* otTcpReceiveAvailable)(otTcpEndpoint *aEndpoint, size_t aBytesAvailable, bool aEndOfStream, size_t aBytesRemaining)

يشير رد النداء هذا إلى عدد البايتات المتاحة للاستهلاك من المخزن المؤقت للاستلام.

يتم استدعاؤه عند إضافة وحدات البايت إلى المخزن المؤقت للاستقبال وعند الوصول إلى نهاية الدفق. إذا تم الوصول إلى نهاية تيار (أي إذا ستصبح أية بيانات أكثر متاحة للقراءة لأن النظير اتصال أغلقت نهايتهم للاتصال للكتابة)، ثم aEndOfStream غير صحيح. وأخيرا، aBytesRemaining يشير إلى مدى قدرة تبقى في تلقي العازلة لحفظ البيانات الإضافية التي يصل.

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP للاتصال.
[in] aBytesAvailable
عدد البايت في المخزن المؤقت لتلقي الاتصال.
[in] aEndOfStream
يشير إلى إمكانية تلقي بيانات إضافية ، بخلاف ما هو موجود بالفعل في المخزن المؤقت لتلقي الاتصال.
[in] aBytesRemaining
عدد البايتات الإضافية التي يمكن تلقيها قبل امتلاء المخزن المؤقت للاستلام.

otTcpSendDone

void(* otTcpSendDone)(otTcpEndpoint *aEndpoint, otLinkedBuffer *aData)

هذا رد بإعلام التطبيق الذي البيانات في المقدمة aData وقد تم الاعتراف من قبل النظير اتصال وأن aData والبيانات التي يحتوي يمكن استصلاحها من قبل التطبيق.

و aData مضمونة لتكون مماثلة لتلك التي مرت في لTCP عبر otTcpSendByReference () ، بما في ذلك أي الملحقات تنفذ عبر otTcpSendByExtension () .

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP للاتصال.
[in] aData
مؤشر إلى otLinkedBuffer التي يمكن استصلاحها.

otTcpSendReady

void(* otTcpSendReady)(otTcpEndpoint *aEndpoint)

يُعلم رد الاتصال هذا التطبيق أنه إذا تمت إضافة البيانات إلى مخزن الإرسال المؤقت ، فسيتم إرسال بعض منها على الفور دون تأخير ، بدلاً من وضعها في قائمة الانتظار للإرسال بمجرد أن يقوم النظير بإرسال بعض البيانات.

بعد استدعاء otTcpSendByReference () أو otTcpSendByExtension () ، و otTcpSendReady () مكفول رد ليتم استدعاؤها، إما مباشرة (إذا كان الاتصال جاهز بالفعل) أو في وقت ما في المستقبل (مرة واحدة على اتصال يصبح جاهزا للمزيد من البيانات).

رد الاتصال هذا ليس ضروريًا لعملية TCP الصحيحة. إذا تمت إضافة المزيد من البيانات إلى المخزن المؤقت للإرسال أكثر مما يمكن إرساله دون تأخير ، فسيتم ببساطة وضعه في قائمة الانتظار للإرسال في وقت لاحق. يجب استخدام رد الاتصال هذا فقط في الحالات التي يكون فيها مطلوبًا بعض التأكيد على أن البيانات المضافة إلى مخزن الإرسال المؤقت سيتم إرسالها قريبًا (على سبيل المثال ، لن ينتظر TCP المستلم لإرسال بعض البيانات الأخرى أولاً قبل إرسال هذه البيانات). على سبيل المثال ، يمكنك استخدام رد الاتصال هذا إذا كنت تفضل إسقاط بياناتك بدلاً من تطوير تراكم البيانات في المخزن المؤقت للإرسال. ولكن بالنسبة لمعظم التطبيقات ، حيث لا يمثل ذلك مصدر قلق ، فمن المتوقع ألا يستخدم المرء رد الاتصال هذا على الإطلاق.

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP للاتصال.

المهام

otTcpAbort

otError otTcpAbort(
  otTcpEndpoint *aEndpoint
)

ينهي قسراً اتصال TCP المرتبط بنقطة نهاية TCP هذه.

وهذا يجعل على الفور نقطة النهاية في TCP مجاني للاستخدام للاتصال آخر ويصب في الإرسال وتلقي المخازن المؤقتة، ونقل ملكية أي البيانات المقدمة من قبل التطبيق في otTcpSendByReference () يدعو إلى التطبيق. تظل عمليات الاسترجاعات والذاكرة الخاصة بنقطة نهاية TCP مرتبطة بنقطة نهاية TCP.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP يمثل نقطة نهاية TCP المراد إحباطها.
إرجاع القيم
OT_ERROR_NONE
تم بنجاح إحباط اتصال نقطة نهاية TCP.
OT_ERROR_FAILED
فشل في إحباط اتصال نقطة نهاية TCP.

otTcpBind

otError otTcpBind(
  otTcpEndpoint *aEndpoint,
  const otSockAddr *aSockName
)

يربط نقطة نهاية TCP بعنوان IP والمنفذ.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP للربط.
[in] aSockName
العنوان والمنفذ المراد ربط نقطة نهاية TCP بهما.
إرجاع القيم
OT_ERROR_NONE
تم بنجاح ربط نقطة نهاية TCP.
OT_ERROR_FAILED
فشل ربط نقطة نهاية TCP.

otTcpCommitReceive

otError otTcpCommitReceive(
  otTcpEndpoint *aEndpoint,
  size_t aNumBytes,
  uint32_t aFlags
)

بإعلام مكدس TCP أن التطبيق يحتوي معالجة الانتهاء aNumBytes بايت من البيانات في بداية تلقي العازلة وأن الحاجة كومة TCP لن يستمر الحفاظ على تلك بايت في الحصول على العازلة.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP يمثل نقطة نهاية TCP التي يتم تلقي البيانات عليها.
[in] aNumBytes
عدد البايتات المستهلكة.
[in] aFlags
علامات تحدد خيارات هذه العملية (لا شيء حتى الآن).
إرجاع القيم
OT_ERROR_NONE
تم إكمال عملية الاستلام بنجاح.
OT_ERROR_FAILED
فشل إكمال عملية الاستلام.

otTcpConnect

otError otTcpConnect(
  otTcpEndpoint *aEndpoint,
  const otSockAddr *aSockName,
  uint32_t aFlags
)

يسجل المضيف والمنفذ البعيد لهذا الاتصال.

يتم استخدام TCP Fast Open افتراضيًا. وهذا يعني أن هذه الوظيفة مجرد يسجل المضيف البعيد والميناء، وأن إنشاء اتصال TCP مصافحة يحدث فقط على الاستدعاء الأول إلى otTcpSendByReference () . TCP سريع المفتوحة يمكن تعطيل صراحة باستخدام aFlags ، وفي هذه الحالة يتم بدء مصافحة إنشاء اتصال TCP على الفور.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP للاتصال.
[in] aSockName
عنوان IP ومنفذ المضيف المراد الاتصال بهما.
[in] aFlags
علامات تحدد خيارات هذه العملية (انظر التعداد أعلاه).
إرجاع القيم
OT_ERROR_NONE
أكملت العملية بنجاح.
OT_ERROR_FAILED
فشل إكمال العملية.

otTcpEndpoint إلغاء التهيئة

otError otTcpEndpointDeinitialize(
  otTcpEndpoint *aEndpoint
)

إلغاء تهيئة نقطة نهاية TCP هذه.

هذا يعني أن OpenThread لم يعد يتتبع نقطة نهاية TCP هذه ويقوم بإلغاء تخصيص جميع الموارد التي خصصها داخليًا لنقطة نهاية TCP هذه. يمكن للتطبيق إعادة استخدام الذاكرة التي تدعم نقطة نهاية TCP كما تراه مناسبًا.

إذا كان يتوافق مع اتصال TCP الحية، وإنهاء الاتصال بشكل غير رسمي (كما هو الحال في otTcpAbort () ). جميع الموارد قدمت طلب للحصول على هذه نقطة النهاية TCP (ربط مخازن للالمخزن المؤقت الإرسال، الذاكرة لتلقي العازلة، و aEndpoint هيكل نفسه، وما إلى ذلك) وعاد على الفور إلى التطبيق.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP المراد إلغاء تهيئتها.
إرجاع القيم
OT_ERROR_NONE
تم إلغاء تهيئة نقطة نهاية TCP بنجاح.
OT_ERROR_FAILED
فشل إلغاء تهيئة نقطة نهاية TCP.

otTcpEndpointGetContext

void * otTcpEndpointGetContext(
  otTcpEndpoint *aEndpoint
)

يحصل على مؤشر السياق الذي كان مرتبطا مع aEndpoint على التهيئة.

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP المطلوب الحصول على سياقها.
عائدات
مؤشر سياق المرتبطة aEndpoint .

otTcpEndpointGetInstance

otInstance * otTcpEndpointGetInstance(
  otTcpEndpoint *aEndpoint
)

يحصل على otInstance الذي كان مرتبطا مع aEndpoint على التهيئة.

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP التي سيتم الحصول على مثيلها.
عائدات
مؤشر otInstance المرتبطة aEndpoint .

otTcpEndpoint التهيئة

otError otTcpEndpointInitialize(
  otInstance *aInstance,
  otTcpEndpoint *aEndpoint,
  otTcpEndpointInitializeArgs *aArgs
)

يقوم بتهيئة نقطة نهاية TCP.

استدعاء هذه الوظيفة يسبب OpenThread لتتبع نقطة النهاية TCP وتخزين واسترجاع البيانات TCP داخل aEndpoint . يجب الامتناع التطبيق من الوصول مباشرة أو تعديل الحقول في aEndpoint . إذا كان التطبيق يحتاج إلى استعادة ذاكرة دعم aEndpoint ، ينبغي أن ندعو otTcpEndpointDeinitialize () .

تفاصيل
العوامل
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP.
[in] aArgs
مؤشر لبنية الحجج.
إرجاع القيم
OT_ERROR_NONE
تم فتح نقطة نهاية TCP بنجاح.
OT_ERROR_FAILED
فشل في فتح نقطة نهاية TCP.

otTcpGetLocalAddress

const otSockAddr * otTcpGetLocalAddress(
  const otTcpEndpoint *aEndpoint
)

يحصل على مؤشر إلى المنفذ والمضيف المحلي لنقطة نهاية TCP.

قد تكون محتويات المضيف والمنفذ قديمة إذا لم يكن هذا المقبس في حالة متصلة ولم يتم ربطه بعد آخر فصل له.

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP التي يمكن للمضيف المحلي والمنفذ الحصول عليها.
عائدات
المضيف المحلي وميناء aEndpoint .

otTcpGetPeerAddress

const otSockAddr * otTcpGetPeerAddress(
  const otTcpEndpoint *aEndpoint
)

يحصل على مؤشر للمضيف والمنفذ النظير لنقطة نهاية TCP.

قد تكون محتويات المضيف والمنفذ قديمة إذا لم يكن هذا المقبس في حالة اتصال.

تفاصيل
العوامل
[in] aEndpoint
نقطة نهاية TCP التي يجب الحصول على مضيف ومنفذ نظيرها.
عائدات
المضيف وميناء النظير اتصال من aEndpoint .

otTcp الاستماع

otError otTcpListen(
  otTcpListener *aListener,
  const otSockAddr *aSockName
)

يتسبب في اتصالات TCP الواردة التي تطابق عنوان IP المحدد والمنفذ لتشغيل عمليات رد الاتصال الخاصة بمستمع TCP.

تفاصيل
العوامل
[in] aListener
مؤشر إلى بنية مستمع TCP التي يجب أن تبدأ في الاستماع.
[in] aSockName
العنوان والمنفذ للاستماع إلى الاتصالات الواردة.
إرجاع القيم
OT_ERROR_NONE
بدأ بنجاح الاستماع على مستمع TCP.
OT_ERROR_FAILED
فشل بدء الاستماع على مستمع TCP.

otTcpListener إلغاء التهيئة

otError otTcpListenerDeinitialize(
  otTcpListener *aListener
)

ينهي مستمع TCP هذا.

هذا يعني أن OpenThread لم يعد يتتبع مستمع TCP هذا ويقوم بإلغاء تخصيص جميع الموارد التي خصصها داخليًا لمستمع TCP هذا. يمكن للتطبيق إعادة استخدام الذاكرة التي تدعم مستمع TCP كما يراه مناسبًا.

إذا كان مستمع TCP يستمع حاليًا ، فإنه يتوقف عن الاستماع.

تفاصيل
العوامل
[in] aListener
مؤشر إلى بنية مستمع TCP المطلوب إلغاء تهيئتها.
إرجاع القيم
OT_ERROR_NONE
تم إلغاء تهيئة مستمع TCP بنجاح.
OT_ERROR_FAILED
فشل إلغاء تهيئة مستمع TCP.

otTcpListenerGetContext

void * otTcpListenerGetContext(
  otTcpListener *aListener
)

يحصل على مؤشر السياق الذي كان مرتبطا مع aListener على التهيئة.

تفاصيل
العوامل
[in] aListener
مستمع TCP الذي يجب الحصول على سياقه.
عائدات
مؤشر سياق المرتبطة aListener .

otTcpListenerGetInstance

otInstance * otTcpListenerGetInstance(
  otTcpListener *aListener
)

يحصل على otInstance الذي كان مرتبطا مع aListener على التهيئة.

تفاصيل
العوامل
[in] aListener
مستمع TCP الذي يجب الحصول على مثيله.
عائدات
مؤشر otInstance المرتبطة aListener .

otTcpListener تهيئة

otError otTcpListenerInitialize(
  otInstance *aInstance,
  otTcpListener *aListener,
  otTcpListenerInitializeArgs *aArgs
)

يقوم بتهيئة مستمع TCP.

استدعاء هذه الوظيفة يسبب OpenThread لتتبع المستمع TCP وتخزين واسترجاع البيانات TCP داخل aListener . يجب الامتناع التطبيق من الوصول مباشرة أو تعديل الحقول في aListener . إذا كان التطبيق يحتاج إلى استعادة دعم الذاكرة aListener ، ينبغي أن ندعو otTcpListenerDeinitialize () .

تفاصيل
العوامل
[in] aInstance
مؤشر إلى مثيل OpenThread.
[in] aListener
مؤشر إلى بنية مستمع TCP.
[in] aArgs
مؤشر لبنية الحجج.
إرجاع القيم
OT_ERROR_NONE
تم فتح مستمع TCP بنجاح.
OT_ERROR_FAILED
فشل في فتح مستمع TCP.

otTcpReceiveByReference

otError otTcpReceiveByReference(
  const otTcpEndpoint *aEndpoint,
  const otLinkedBuffer **aBuffer
)

يزود التطبيق بسلسلة عازلة مرتبطة تشير إلى البيانات الموجودة حاليًا في المخزن المؤقت لاستقبال TCP.

سلسلة عازلة مرتبطة صالحة حتى "تلقي جاهزة" يتم استدعاء الاستدعاء المقبل، أو حتى المكالمة التالية إلى otTcpReceiveContiguify () أو otTcpCommitReceive () .

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP يمثل نقطة نهاية TCP التي يتم تلقي البيانات عليها.
[out] aBuffer
مؤشر إلى سلسلة المخزن المؤقت المرتبطة التي تشير إلى البيانات الموجودة حاليًا في المخزن المؤقت للاستقبال.
إرجاع القيم
OT_ERROR_NONE
أكملت العملية بنجاح.
OT_ERROR_FAILED
فشل إكمال العملية.

otTcpReceiveContiguify

otError otTcpReceiveContiguify(
  otTcpEndpoint *aEndpoint
)

يعيد تنظيم المخزن المؤقت للاستلام ليكون متجاورًا تمامًا في الذاكرة.

هذا اختياري. تطبيق يمكن ببساطة تجتاز سلسلة عازلة مرتبطة الحصول عليها بالاتصال otTcpReceiveByReference . قد ترغب بعض التطبيقات في استدعاء هذه الوظيفة لجعل المخزن المؤقت للاستقبال متجاورًا لتبسيط معالجة البيانات الخاصة بهم ، ولكن هذا يأتي على حساب وقت وحدة المعالجة المركزية لإعادة تنظيم البيانات في المخزن المؤقت للاستقبال.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى نقطة نهاية TCP التي سيتم إعادة تنظيم المخزن المؤقت لاستقبالها.
إرجاع القيم
OT_ERROR_NONE
أكملت العملية بنجاح.
OT_ERROR_FAILED
فشل إكمال العملية.

otTcpSendByExtension

otError otTcpSendByExtension(
  otTcpEndpoint *aEndpoint,
  size_t aNumBytes,
  uint32_t aFlags
)

يضيف البيانات إلى المخزن المؤقت ترسل عن طريق تمديد مدة المباراة النهائية otLinkedBuffer في المخزن المؤقت الإرسال بمقدار معين.

إذا كان المخزن المؤقت للإرسال فارغًا ، فستفشل العملية.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP يمثل نقطة نهاية TCP التي سيتم إرسال البيانات عليها.
[in] aNumBytes
عدد البايت الذي يتم من خلاله تمديد طول المخزن المؤقت المرتبط النهائي.
[in] aFlags
علامات تحدد خيارات هذه العملية (انظر التعداد أعلاه).
إرجاع القيم
OT_ERROR_NONE
تمت إضافة البيانات بنجاح إلى مخزن الإرسال المؤقت.
OT_ERROR_FAILED
فشل في إضافة البيانات إلى المخزن المؤقت للإرسال.

otTcpSendByReference

otError otTcpSendByReference(
  otTcpEndpoint *aEndpoint,
  otLinkedBuffer *aBuffer,
  uint32_t aFlags
)

وأشارت البيانات يضيف المشار إليه من قبل المخزن المؤقت مرتبطة بواسطة aBuffer إلى المخزن المؤقت الإرسال.

عند استدعاء هذه الوظيفة بنجاح ، فإن المخزن المؤقت المرتبط والبيانات التي تشير إليها مملوكة لمكدس TCP ؛ لا ينبغي تعديلها بواسطة التطبيق حتى تعيد رد نداء "تم الإرسال" ملكية تلك الكائنات إلى التطبيق. من المقبول استدعاء هذه الوظيفة لإضافة مخزن مؤقت مرتبط آخر إلى قائمة انتظار الإرسال ، حتى إذا لم يتم تشغيل رد الاتصال "تم الإرسال" لاستدعاء سابق لهذه الوظيفة.

علما بأن aBuffer لا ينبغي بالسلاسل. يجب أن يكون حقل mNext الخاص به فارغًا. إذا تمت إضافة بيانات إضافية بعد هذه المكالمة مباشرةً ، فيجب استخدام علامة OT_TCP_SEND_MORE_TO_COME كتلميح لتطبيق TCP.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP يمثل نقطة نهاية TCP التي سيتم إرسال البيانات عليها.
[in] aBuffer
يشير مؤشر إلى سلسلة المخزن المؤقت المرتبطة إلى البيانات المراد إضافتها إلى مخزن الإرسال المؤقت.
[in] aFlags
علامات تحدد خيارات هذه العملية (انظر التعداد أعلاه).
إرجاع القيم
OT_ERROR_NONE
تمت إضافة البيانات بنجاح إلى مخزن الإرسال المؤقت.
OT_ERROR_FAILED
فشل في إضافة البيانات إلى المخزن المؤقت للإرسال.

otTcpSendEndOfStream

otError otTcpSendEndOfStream(
  otTcpEndpoint *aEndpoint
)

يُعلم نظير الاتصال أن نقطة نهاية TCP هذه لن ترسل المزيد من البيانات.

يجب استخدام هذا عندما لا يحتوي التطبيق على المزيد من البيانات لإرسالها إلى نظير الاتصال. بالنسبة لهذا الاتصال ، ستؤدي القراءات المستقبلية على نظير الاتصال إلى حالة "نهاية الدفق" ، وستفشل عمليات الكتابة المستقبلية على نقطة نهاية الاتصال هذه.

ينطبق شرط "نهاية الدفق" فقط بعد تلقي نظير الاتصال أي بيانات تم تقديمها مسبقًا إلى مكدس TCP لإرسالها.

تفاصيل
العوامل
[in] aEndpoint
مؤشر إلى بنية نقطة نهاية TCP يمثل نقطة نهاية TCP المراد إيقاف تشغيلها.
إرجاع القيم
OT_ERROR_NONE
تم بنجاح وضع شرط "نهاية الدفق" في قائمة الانتظار للإرسال.
OT_ERROR_FAILED
فشل وضع شرط "نهاية الدفق" في قائمة الانتظار للإرسال.

otTcpStopListening

otError otTcpStopListening(
  otTcpListener *aListener
)

يتسبب في توقف مستمع TCP هذا عن الاستماع للاتصالات الواردة.

تفاصيل
العوامل
[in] aListener
مؤشر إلى بنية مستمع TCP التي يجب أن تتوقف عن الاستماع.
إرجاع القيم
OT_ERROR_NONE
توقف بنجاح عن الاستماع على مستمع TCP.
OT_ERROR_FAILED
فشل في التوقف عن الاستماع على مستمع TCP.

وحدات الماكرو

OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS 2599

حجم المخزن المؤقت الموصى به لاتصالات TCP التي تعبر حوالي 3 قفزات لاسلكية أو أقل.

في الأنظمة الأساسية حيث تكون الذاكرة مقيدة بشكل خاص وفي المواقف التي لا يلزم فيها عرض النطاق الترددي العالي ، قد يكون من المرغوب فيه تحديد حجم ذاكرة تخزين مؤقت أصغر يدويًا.

OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS 4158

حجم المخزن المؤقت الموصى به لاتصالات TCP التي تتجاوز العديد من القفزات اللاسلكية.

إذا اجتاز اتصال TCP عددًا كبيرًا جدًا من القفزات (أكثر من 6 أو نحو ذلك) ، فقد يكون من المستحسن تحديد حجم مخزن مؤقت كبير يدويًا.