TCP

इस मॉड्यूल में ऐसे फ़ंक्शन शामिल हैं जो टीसीपी कम्यूनिकेशन को कंट्रोल करते हैं.

खास जानकारी

गिनती

anonymous enum enum
otTcpConnect() को भेजे गए फ़्लैग के बारे में बताता है.
anonymous enum enum
otTcpSendByReference को भेजे गए फ़्लैग के बारे में बताता है.
otTcpDisconnectedReason enum
otTcpIncomingConnectionAction{
  OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT,
  OT_TCP_INCOMING_CONNECTION_ACTION_DEFER,
  OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE
}
enum
यह फ़ंक्शन, कनेक्शन के लिए होने वाली कार्रवाइयों के बारे में बताता है.

टाइपडीफ़

otLinkedBuffer typedef
टीसीपी के साथ इस्तेमाल करने के लिए, लिंक किया गया बफ़र स्ट्रक्चर.
otTcpAcceptDone)(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer) typedef
void(*
यह कॉलबैक बताता है कि टीसीपी कनेक्शन अब टू-वे कम्यूनिकेशन के लिए तैयार है.
otTcpAcceptReady)(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto) typedef
यह कॉलबैक बताता है कि इस टीसीपी लिसनर से मैच करने वाला इनकमिंग कनेक्शन आ गया है.
otTcpDisconnected)(otTcpEndpoint *aEndpoint, otTcpDisconnectedReason aReason) typedef
void(*
यह कॉलबैक बताता है कि कनेक्शन टूट गया था और अब इसका इस्तेमाल नहीं किया जाना चाहिए या कोई कनेक्शन टाइम-वेक स्थिति में चला गया है.
otTcpDisconnectedReason typedef
enum otTcpDisconnectedReason
otTcpEndpoint typedef
struct otTcpEndpoint
otTcpEndpointInitializeArgs typedef
इसमें otTcpEndpointInitialize() फ़ंक्शन के लिए आर्ग्युमेंट शामिल होते हैं.
otTcpEstablished)(otTcpEndpoint *aEndpoint) typedef
void(*
यह कॉलबैक, ऐप्लिकेशन को बताता है कि टीसीपी 3-वे हैंडशेक पूरा हो गया है और अब कनेक्शन बन गया है.
otTcpForwardProgress)(otTcpEndpoint *aEndpoint, size_t aInSendBuffer, size_t aBacklog) typedef
void(*
यह कॉलबैक ऐप्लिकेशन को सूचना देता है कि 'भेजे गए बफ़र' से डेटा पाने वाले को डेटा ट्रांसफ़र होने की प्रोसेस जारी है या नहीं.
otTcpIncomingConnectionAction typedef
यह फ़ंक्शन, कनेक्शन के लिए होने वाली कार्रवाइयों के बारे में बताता है.
otTcpListener typedef
struct otTcpListener
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 और उसमें मौजूद डेटा को ऐप्लिकेशन फिर से पा सकता है.

फ़ंक्शन

otTcpAbort(otTcpEndpoint *aEndpoint)
इस टीसीपी एंडपॉइंट से जुड़े टीसीपी कनेक्शन को ज़बरदस्ती खत्म करता है.
otTcpBind(otTcpEndpoint *aEndpoint, const otSockAddr *aSockName)
टीसीपी एंडपॉइंट को आईपी पते और पोर्ट से बाइंड करता है.
otTcpCommitReceive(otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
यह टीसीपी स्टैक को सूचना देता है कि ऐप्लिकेशन ने aNumBytes बाइट डेटा को रिसीव बफ़र की शुरुआत में प्रोसेस कर लिया है. साथ ही, यह भी बताता है कि टीसीपी स्टैक को इन बाइट को रिसीव बफ़र में बनाए रखने की ज़रूरत नहीं है.
otTcpConnect(otTcpEndpoint *aEndpoint, const otSockAddr *aSockName, uint32_t aFlags)
इस कनेक्शन के लिए रिमोट होस्ट और पोर्ट को रिकॉर्ड करता है.
otTcpEndpointDeinitialize(otTcpEndpoint *aEndpoint)
यह टीसीपी एंडपॉइंट को शुरू नहीं करता है.
otTcpEndpointGetContext(otTcpEndpoint *aEndpoint)
void *
शुरू होने पर, aEndpoint से जुड़े कॉन्टेक्स्ट पॉइंटर को हासिल करता है.
otTcpEndpointGetInstance(otTcpEndpoint *aEndpoint)
शुरू होने पर, aEndpoint से जुड़े otइंस्टेंस को हासिल करता है.
otTcpEndpointInitialize(otInstance *aInstance, otTcpEndpoint *aEndpoint, const otTcpEndpointInitializeArgs *aArgs)
टीसीपी एंडपॉइंट को शुरू करता है.
otTcpGetLocalAddress(const otTcpEndpoint *aEndpoint)
const otSockAddr *
टीसीपी एंडपॉइंट के लोकल होस्ट और पोर्ट के लिए पॉइंटर हासिल करता है.
otTcpGetPeerAddress(const otTcpEndpoint *aEndpoint)
const otSockAddr *
टीसीपी एंडपॉइंट के पीयर के होस्ट और पोर्ट के लिए पॉइंटर हासिल करता है.
otTcpListen(otTcpListener *aListener, const otSockAddr *aSockName)
इसकी वजह से, आने वाले ऐसे टीसीपी कनेक्शन होते हैं जो दिए गए आईपी पते और पोर्ट से मैच करते हैं. इससे, टीसीपी लिसनर के कॉलबैक ट्रिगर होते हैं.
otTcpListenerDeinitialize(otTcpListener *aListener)
यह टीसीपी लिसनर को बंद कर देता है.
otTcpListenerGetContext(otTcpListener *aListener)
void *
शुरू होने पर, aListener से जुड़े कॉन्टेक्स्ट पॉइंटर को हासिल करता है.
otTcpListenerGetInstance(otTcpListener *aListener)
शुरू होने पर, aListener से जुड़े otइंस्टेंस को हासिल करता है.
otTcpListenerInitialize(otInstance *aInstance, otTcpListener *aListener, const otTcpListenerInitializeArgs *aArgs)
टीसीपी लिसनर को शुरू करता है.
otTcpReceiveByReference(otTcpEndpoint *aEndpoint, const otLinkedBuffer **aBuffer)
ऐप्लिकेशन को लिंक की गई बफ़र चेन के साथ देता है. यह टीसीपी रिसीव बफ़र में मौजूद डेटा का रेफ़रंस देता है.
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)
इससे, कनेक्शन पीयर को सूचना मिलती है कि यह टीसीपी एंडपॉइंट ज़्यादा डेटा नहीं भेजेगा.
otTcpStopListening(otTcpListener *aListener)
इसकी वजह से, यह टीसीपी लिसनर इनकमिंग कनेक्शन को सुनना बंद कर देता है.

संरचना

otLinkedBuffer

टीसीपी के साथ इस्तेमाल करने के लिए, लिंक किया गया बफ़र स्ट्रक्चर.

otTcpEndpoint

टीसीपी एंडपॉइंट को दिखाता है.

otTcpEndpointInitializeArgs

इसमें otTcpEndpointInitialize() फ़ंक्शन के लिए आर्ग्युमेंट शामिल होते हैं.

otTcpListener

यह टीसीपी लिसनर के बारे में बताता है.

otTcpListenerInitializeArgs

इसमें otTcpListenerInitialize() फ़ंक्शन में आर्ग्युमेंट शामिल होते हैं.

गिनती

अनाम Enum

 anonymous enum

otTcpConnect() को भेजे गए फ़्लैग के बारे में बताता है.

अनाम Enum

 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

टीसीपी के साथ इस्तेमाल करने के लिए, लिंक किया गया बफ़र स्ट्रक्चर.

एक otLinkedBuffer संरचना, mData और mLength के ज़रिए मेमोरी में बाइट की कैटगरी का रेफ़रंस देती है. mNext फ़ील्ड का इस्तेमाल otLinkedBuffer स्ट्रक्चर की एक चेन बनाने के लिए किया जाता है.

otTcpAcceptDone

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

यह कॉलबैक बताता है कि टीसीपी कनेक्शन अब टू-वे कम्यूनिकेशन के लिए तैयार है.

टीसीपी फ़ास्ट ओपन के मामले में, ऐसा टीसीपी कनेक्शन हैंडशेक के पूरा होने से पहले भी हो सकता है. कनेक्शन को स्वीकार करने वाले टीसीपी लिसनर और इसके लिए इस्तेमाल किए जाने वाले टीसीपी लिसनर, दोनों के लिए, इस ऐप्लिकेशन में कॉन्टेक्स्ट पॉइंटर दिए जाते हैं. दिया गया कॉन्टेक्स्ट वह होता है जो टीसीपी लिसनर से जुड़ा हो.

ब्यौरा
पैरामीटर
[in] aListener
ऐसा टीसीपी लिसनर जो आने वाले कनेक्शन से मैच करता है.
[in] aEndpoint
वह टीसीपी एंडपॉइंट जिसमें इनकमिंग कनेक्शन को स्वीकार किया गया था.
[in] aPeer
वह होस्ट और पोर्ट जिससे इनकमिंग कनेक्शन शुरू हुआ.

otTcpAcceptReady

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

यह कॉलबैक बताता है कि इस टीसीपी लिसनर से मैच करने वाला इनकमिंग कनेक्शन आ गया है.

आम तौर पर, ऐप्लिकेशन को इनकमिंग कनेक्शन स्वीकार करना होता है. ऐसा करने के लिए, aAcceptInto में एक पॉइंटर की मदद से otTcpEndpoint पर जानकारी अपने-आप भर जाती है, जिसमें आने वाले कनेक्शन को स्वीकार करना होता है. इस otTcpEndpoint को otTcpEndpointInitialize() की मदद से पहले ही शुरू किया जा चुका है. इसके बाद, ऐप्लिकेशन OT_TCP_INCOMING_CONNECTION_ACTION_CONTROL का इस्तेमाल करता है.

इसके अलावा, ऐप्लिकेशन आने वाले कनेक्शन को स्वीकार करने से मना कर सकता है. ऐसा करने के लिए ऐप्लिकेशन के पास दो तरीके हैं. सबसे पहले, अगर ऐप्लिकेशन OT_TCP_INCOMING_CONNECTION_ACTION_DEFER देता है, तो OpenThread बिना किसी रुकावट के, कनेक्शन की पुष्टि करने के अनुरोध को अनदेखा कर देता है. ऐसा हो सकता है कि कनेक्शन बनाने वाला ऐप्लिकेशन, अनुरोध को फिर से शेयर करे. ऐसा होने पर, कॉलबैक को फिर से कॉल किया जाएगा. अगर कनेक्शन स्वीकार करने के लिए संसाधन मौजूद नहीं हैं, तो यह तरीका अहम है. हालांकि, जब कनेक्शन पीयर, कनेक्शन बनाने की कोशिश फिर से करता है, तब वे उपलब्ध हो सकते हैं. दूसरा, अगर ऐप्लिकेशन OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE देता है, तो OpenThread उस होस्ट को "कनेक्शन अस्वीकार किया गया" मैसेज भेजता है जिसने कनेक्ट करने की कोशिश की थी. अगर ऐप्लिकेशन, इनकमिंग कनेक्शन का अनुरोध अस्वीकार कर देता है, तो aAcceptInto में जानकारी भरने की ज़रूरत नहीं है.

ब्यौरा
पैरामीटर
[in] aListener
ऐसा टीसीपी लिसनर जो आने वाले कनेक्शन से मैच करता है.
[in] aPeer
वह होस्ट और पोर्ट जहां से इनकमिंग कनेक्शन शुरू होता है.
[out] aAcceptInto
वह टीसीपी एंडपॉइंट जिसमें आने वाले (इनकमिंग) कनेक्शन को स्वीकार किया जाता है.
लौटाए गए सामान
इनकमिंग कनेक्शन को मैनेज करने के तरीके की जानकारी.

otTcpDisconnected

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

यह कॉलबैक बताता है कि कनेक्शन टूट गया था और अब इसका इस्तेमाल नहीं किया जाना चाहिए या कोई कनेक्शन टाइम-वेक स्थिति में चला गया है.

ऐसा तब हो सकता है, जब कनेक्शन बनाने की कोशिश (otTcpConnect() को कॉल करके की गई हो) या इसके बाद किसी भी समय (उदाहरण के लिए, अगर कनेक्शन का टाइम आउट हो जाता है या कनेक्शन पीयर से कोई आरएसटी सेगमेंट मिलता है) फ़ेल हो जाता है. इस कॉलबैक के फ़ायर होने के बाद, कनेक्शन के लिए दिए गए सभी रिसॉर्स (यानी कि कोई भी otLinkedBuffers और मेमोरी, जिसका रेफ़रंस दिया गया है, न कि टीसीपी एंडपॉइंट या रिसीव बफ़र के लिए स्पेस) को फिर से पाया जा सकता है. टाइम-वेक स्थिति में प्रवेश करने वाले कनेक्शन के मामले में, इस कॉलबैक को दो बार कॉल किया जाता है, जिसमें पहली बार TIME-AGE स्थिति में जाने पर (OT_TCP_DISCONNECTED_REASON_TIME_ फ़ंक्शन से, और दोबारा, TIME-रु की स्थिति की समय-सीमा समाप्त होने पर (OT_TCP_DISCONNECTED_REASON_NORMAL के साथ) कॉल किया जाता है.

ब्यौरा
पैरामीटर
[in] aEndpoint
वह टीसीपी एंडपॉइंट जिसका कनेक्शन टूट गया है.
[in] aReason
कनेक्शन टूट जाने की वजह.

otTcpDisconnectedReason

enum otTcpDisconnectedReason otTcpDisconnectedReason

otTcpEndpoint

struct otTcpEndpoint otTcpEndpoint

otTcpEndpointInitializeArgs

struct otTcpEndpointInitializeArgs otTcpEndpointInitializeArgs

इसमें otTcpEndpointInitialize() फ़ंक्शन के लिए आर्ग्युमेंट शामिल होते हैं.

otTcpEstablished

void(* otTcpEstablished)(otTcpEndpoint *aEndpoint)

यह कॉलबैक, ऐप्लिकेशन को बताता है कि टीसीपी 3-वे हैंडशेक पूरा हो गया है और अब कनेक्शन बन गया है.

ब्यौरा
पैरामीटर
[in] aEndpoint
वह टीसीपी एंडपॉइंट जिसका कनेक्शन अब मौजूद है.

otTcpForwardProgress

void(* otTcpForwardProgress)(otTcpEndpoint *aEndpoint, size_t aInSendBuffer, size_t aBacklog)

यह कॉलबैक ऐप्लिकेशन को सूचना देता है कि 'भेजे गए बफ़र' से डेटा पाने वाले को डेटा ट्रांसफ़र होने की प्रोसेस जारी है या नहीं.

सही टीसीपी कार्रवाई के लिए यह कॉलबैक ज़रूरी नहीं है. ज़्यादातर ऐप्लिकेशन, लिंक किए गए बफ़र का इस्तेमाल करने के बाद, उन पर otTcpSendDone() कॉलबैक पर भरोसा करते हैं. इससे, लिंक किए गए बफ़र का इस्तेमाल हो जाने के बाद, उन पर दावा किया जाता है. इस कॉलबैक का मकसद बेहतर ऐप्लिकेशन के साथ काम करना है, जिन्हें इस बारे में ज़्यादा बेहतर जानकारी से फ़ायदा मिलता है कि कैसे कनेक्शन पीयर को डेटा ट्रांसफ़र करने में तेज़ी से आगे बढ़ रहा है.

इस कॉलबैक की कार्रवाई, टीसीपी के'भेजें' बफ़र से काफ़ी हद तक जुड़ी होती है. 'भेजें' बफ़र को दो क्षेत्रों के तौर पर समझा जा सकता है. सबसे पहले, भेजें बफ़र के शीर्ष (आगे) में "इन-फ़्लाइट" क्षेत्र होता है. यह उसी डेटा से जुड़ा होता है जिसे पाने वाले को भेजा गया है, लेकिन उसे अभी तक स्वीकार नहीं किया गया है. दूसरा, "बैकलॉग" क्षेत्र होता है, जिसमें भेजें बफ़र का वह पूरा डेटा शामिल होता है जो "इन-फ़्लाइट" क्षेत्र में नहीं है. "बैकलॉग" इलाका, उस डेटा से जुड़ा होता है जिसे भेजे जाने के लिए सूची में शामिल किया जाता है, लेकिन अभी तक भेजा नहीं गया है.

कॉलबैक को दो तरह के इवेंट के जवाब में शुरू किया जाता है. सबसे पहले, भेजें बफ़र का "इन-फ़्लाइट" क्षेत्र सिकुड़ सकता है (जैसे, जब ईमेल पाने वाला यह स्वीकार करता है कि हमने पहले भेजे गए डेटा की पुष्टि की थी). दूसरा, भेजें बफ़र का "बैकलॉग" क्षेत्र छोटा हो सकता है (उदाहरण के लिए, नया डेटा भेजा गया). कनेक्शन पीयर से ACK सेगमेंट के जवाब में, ये दो शर्तें अक्सर एक ही समय पर होती हैं. इसलिए, उन्हें एक ही कॉलबैक में जोड़ा जाता है.

टीसीपी स्टैक, भेजे गए बफ़र के आखिरी हिस्से में सिर्फ़ aInSendBuffer बाइट का इस्तेमाल करता है.जब aInSendBuffer x तक घटता है, तो इसका मतलब है कि x अतिरिक्त बाइट जो पहले भेजें बफ़र के हेड में थीं, अब वे भेजें बफ़र का हिस्सा नहीं हैं. अब ऐप्लिकेशन से उन पर फिर से दावा किया जा सकता है (यानी ओवरराइट). ध्यान दें कि otLinkedBuffer संरचना पर सिर्फ़ एक बार फिर से दावा किया जा सकता है. ऐसा सिर्फ़ एक बार किया जा सकता है. ऐसा तब किया जाता है, जब इस बाइट के बारे में बताया गया हो और वे अब भेजने के बफ़र का हिस्सा न हों.

यह कॉलबैक otTcpSendDone() को नीचे बताए गए तरीके से शामिल करता है: ऐप्लिकेशन यह तय कर सकते हैं कि लिंक किए गए बफ़र पर कब दावा किया जा सकता है. इसके लिए, aInSendBuffer की तुलना लिंक किए गए हर बफ़र में मौजूद बाइट की संख्या से की जाती है. हालांकि, हम otTcpSendDone() फ़ंक्शन का इस्तेमाल करते हैं. इससे यह पता चलता है कि कौनसे otLinkedBuffers का फिर से दावा किया जा सकता है और यह इस्तेमाल करने में बहुत आसान है. अगर दोनों कॉलबैक रजिस्टर किए गए हैं और एक ही इवेंट से ट्रिगर होते हैं (जैसे कि एक ही ACK सेगमेंट मिला), तो पहले otTcpSendDone() कॉलबैक ट्रिगर होगा. इसके बाद, यह कॉलबैक ट्रिगर होगा.

इसके अलावा, इस कॉलबैक में aBacklog की सुविधा होती है. इससे पता चलता है कि भेजें बफ़र में कितने बाइट डेटा फ़िलहाल फ़्लाइट में नहीं है. उन ऐप्लिकेशन को डेटा भेजने के लिए बफ़र में सिर्फ़ तब शामिल करना होता है, जब इस बात का भरोसा हो कि उसे जल्द ही भेज दिया जाएगा, इसलिए ज़रूरी हो सकता है कि डेटा सिर्फ़ तब भेजा जाए, जब aBacklog ज़रूरत के मुताबिक छोटा हो (0 या 0 के करीब). उदाहरण के लिए, कोई ऐप्लिकेशन aBacklog का इस्तेमाल कर सकता है, ताकि यह डेटा का बैकलॉग बनाने से बचने के लिए, डेटा इकट्ठा करके या उसे ग्रुप में बांटकर सूची में बदलाव कर सके.

otTcpSendByReference() या otTcpSendByExtension() या बाइट की पॉज़िटिव संख्या के साथ otTcpSendByExtension() को कॉल करने के बाद, otTcpForwardProgress() कॉलबैक को कॉल करने की गारंटी होती है. इससे पता चलता है कि भेजे जाने वाले बफ़र में जोड़ी गई बाइट कब भेजी गई थीं. otTcpForwardProgress() को, भेजे गए बफ़र में बाइट जोड़ने के तुरंत बाद की जा सकती है (अगर उनमें से कुछ बाइट तुरंत भेज दी जाती हैं, जिससे बैकलॉग कम हो जाता है) या बाद में कभी (जब कनेक्शन पूरा या पूरा डेटा भेज देता है, तो बैकलॉग कम हो जाता है). "तुरंत" से, हमारा मतलब है कि कॉलबैक को किसी टास्कलेट में तुरंत एक्ज़ीक्यूशन के लिए शेड्यूल किया जाता है. रीएंट्रेंसी से जुड़ी जटिलता से बचने के लिए, otTcpForwardProgress()

ब्यौरा
पैरामीटर
[in] aEndpoint
कनेक्शन के लिए टीसीपी एंडपॉइंट.
[in] aInSendBuffer
भेजें बफ़र में बाइट की संख्या ("इन-फ़्लाइट" और "बैकलॉग" क्षेत्रों का योग).
[in] aBacklog
भेजे जाने के लिए कतार में मौजूद बाइट की संख्या, लेकिन अभी तक भेजी नहीं गई है ("बैकलॉग" क्षेत्र).

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
कनेक्शन के लिए टीसीपी एंडपॉइंट.
[in] aBytesAvailable
कनेक्शन के मिलने वाले बफ़र में बाइट की संख्या.
[in] aEndOfStream
यह बताता है कि कनेक्शन के रिसीव बफ़र में पहले से मौजूद डेटा के अलावा, अतिरिक्त डेटा मिल सकता है या नहीं.
[in] aBytesRemaining
रिसीव बफ़र के पूरा होने से पहले मिल सकने वाली अतिरिक्त बाइट की संख्या.

otTcpSendDone

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

यह कॉलबैक, ऐप्लिकेशन को बताता है कि दिए गए aData के डेटा को कनेक्शन पीयर ने स्वीकार कर लिया है और aData और उसमें मौजूद डेटा को ऐप्लिकेशन फिर से पा सकता है.

इस बात की गारंटी दी जाती है कि aData, otTcpSendByReference() के ज़रिए टीसीपी में पास की गई वैल्यू से मेल खाएगा और इनमें otTcpSendByExtension() की मदद से लागू किए गए एक्सटेंशन भी शामिल होंगे.

ब्यौरा
पैरामीटर
[in] aEndpoint
कनेक्शन के लिए टीसीपी एंडपॉइंट.
[in] aData
otLinkedBuffer के लिए पॉइंटर की सुविधा, जिस पर फिर से दावा किया जा सकता है.

फ़ंक्शन

otTcpAbort

otError otTcpAbort(
  otTcpEndpoint *aEndpoint
)

इस टीसीपी एंडपॉइंट से जुड़े टीसीपी कनेक्शन को ज़बरदस्ती खत्म करता है.

इससे टीसीपी एंडपॉइंट किसी दूसरे कनेक्शन के लिए तुरंत इस्तेमाल नहीं किया जा सकता. साथ ही, यह भेजने और पाने वाले बफ़र को खाली कर देता है. साथ ही, otTcpSendByReference() और otTcpSendByExtension() में दिए गए डेटा का मालिकाना हक वापस ऐप्लिकेशन को ट्रांसफ़र कर देता है. टीसीपी एंडपॉइंट के कॉलबैक और रिसीव बफ़र के लिए मेमोरी, टीसीपी एंडपॉइंट से जुड़ी रहती है.

ब्यौरा
पैरामीटर
[in] aEndpoint
रद्द करने के लिए टीसीपी एंडपॉइंट को दिखाने वाले टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
टीसीपी एंडपॉइंट का कनेक्शन रद्द कर दिया गया.
OT_ERROR_FAILED
टीसीपी एंडपॉइंट का कनेक्शन रद्द नहीं किया जा सका.

otTcpBind

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

टीसीपी एंडपॉइंट को आईपी पते और पोर्ट से बाइंड करता है.

ब्यौरा
पैरामीटर
[in] aEndpoint
बाइंड करने के लिए, टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर.
[in] aSockName
वह पता और पोर्ट जिससे इस टीसीपी एंडपॉइंट को बाइंड करना है.
रिटर्न वैल्यू
OT_ERROR_NONE
टीसीपी एंडपॉइंट को बाइंड करने की प्रोसेस पूरी हुई.
OT_ERROR_FAILED
टीसीपी एंडपॉइंट को बाइंड नहीं किया जा सका.

otTcpCommitReceive

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

यह टीसीपी स्टैक को सूचना देता है कि ऐप्लिकेशन ने aNumBytes बाइट डेटा को रिसीव बफ़र की शुरुआत में प्रोसेस कर लिया है. साथ ही, यह भी बताता है कि टीसीपी स्टैक को इन बाइट को रिसीव बफ़र में बनाए रखने की ज़रूरत नहीं है.

ब्यौरा
पैरामीटर
[in] aEndpoint
टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर, उस टीसीपी एंडपॉइंट को दिखाता है जिस पर डेटा पाना है.
[in] aNumBytes
इस्तेमाल किए गए बाइट की संख्या.
[in] aFlags
इस कार्रवाई के लिए विकल्प तय करने वाले फ़्लैग (अभी तक कोई नहीं).
रिटर्न वैल्यू
OT_ERROR_NONE
पाने की कार्रवाई पूरी हुई.
OT_ERROR_FAILED
पाने की कार्रवाई पूरी नहीं की जा सकी.

otTcpConnect

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

इस कनेक्शन के लिए रिमोट होस्ट और पोर्ट को रिकॉर्ड करता है.

टीसीपी फ़ास्ट ओपन को aFlags का इस्तेमाल करके चालू या बंद किया जाना चाहिए. यह सुविधा बंद होने पर, टीसीपी कनेक्शन इंस्टॉलेशन हैंडशेक तुरंत शुरू हो जाता है. अगर इसे चालू किया जाता है, तो यह फ़ंक्शन सिर्फ़ रिमोट होस्ट और पोर्ट को रिकॉर्ड करता है. साथ ही, टीसीपी कनेक्शन इंस्टॉलेशन हैंडशेक, otTcpSendByReference() को किए गए पहले कॉल पर ही होता है.

अगर टीसीपी फ़ास्ट ओपन की सुविधा बंद है, तो कॉलर को otTcpEstablished कॉलबैक का इंतज़ार करना होगा, जो यह बताता है कि टीसीपी कनेक्शन स्थापित होने से पहले हैंडशेक किया जा चुका है.इसके बाद ही, वह डेटा भेजना शुरू कर पाएगा. उदाहरण के लिए, otTcpSendByReference() पर कॉल करके.

ब्यौरा
पैरामीटर
[in] aEndpoint
कनेक्ट करने के लिए, टीसीपी एंडपॉइंट स्ट्रक्चर से जुड़ा पॉइंटर.
[in] aSockName
उस होस्ट का आईपी पता और पोर्ट जिससे कनेक्ट करना है.
[in] aFlags
इस कार्रवाई के लिए विकल्प बताने वाले फ़्लैग (ऊपर दी गई सूची देखें).
रिटर्न वैल्यू
OT_ERROR_NONE
कार्रवाई पूरी हुई.
OT_ERROR_FAILED
कार्रवाई पूरी नहीं हो सकी.

otTcpEndpointDeinitialize

otError otTcpEndpointDeinitialize(
  otTcpEndpoint *aEndpoint
)

यह टीसीपी एंडपॉइंट को शुरू नहीं करता है.

इसका मतलब है कि OpenThread अब इस टीसीपी एंडपॉइंट को ट्रैक नहीं करता है. साथ ही, यह उन सभी संसाधनों को हटा देता है जो इस टीसीपी एंडपॉइंट के लिए अंदरूनी तौर पर असाइन किए गए हैं. ऐप्लिकेशन, टीसीपी एंडपॉइंट का बैक अप लेने वाली मेमोरी को फिर से इस्तेमाल कर सकता है.

अगर यह किसी लाइव टीसीपी कनेक्शन से जुड़ा होता है, तो कनेक्शन बिना किसी वजह के खत्म कर दिया जाता है (जैसे कि otTcpAbort()). इस टीसीपी एंडपॉइंट के लिए ऐप्लिकेशन से मिले सभी संसाधन (भेजें बफ़र के लिए लिंक किए गए बफ़र, रिसीव बफ़र के लिए मेमोरी, और aEndpoint स्ट्रक्चर वगैरह) ऐप्लिकेशन में तुरंत वापस आ जाते हैं.

ब्यौरा
पैरामीटर
[in] aEndpoint
इनीशियलाइज़ करने के लिए, टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
टीसीपी एंडपॉइंट को चालू नहीं किया गया.
OT_ERROR_FAILED
टीसीपी एंडपॉइंट को शुरू नहीं किया जा सका.

otTcpEndpointGetContext

void * otTcpEndpointGetContext(
  otTcpEndpoint *aEndpoint
)

शुरू होने पर, aEndpoint से जुड़े कॉन्टेक्स्ट पॉइंटर को हासिल करता है.

ब्यौरा
पैरामीटर
[in] aEndpoint
वह टीसीपी एंडपॉइंट जिसका कॉन्टेक्स्ट पाना है.
लौटाए गए सामान
aEndpoint से जुड़ा कॉन्टेक्स्ट पॉइंटर.

otTcpEndpointGetInstance

otInstance * otTcpEndpointGetInstance(
  otTcpEndpoint *aEndpoint
)

शुरू होने पर, aEndpoint से जुड़े otइंस्टेंस को हासिल करता है.

ब्यौरा
पैरामीटर
[in] aEndpoint
वह टीसीपी एंडपॉइंट जिसका इंस्टेंस पाना है.
लौटाए गए सामान
aEndpoint से जुड़ा ओटइंस्टेंस पॉइंटर.

otTcpEndpointInitialize

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

टीसीपी एंडपॉइंट को शुरू करता है.

इस फ़ंक्शन को कॉल करने से OpenThread, टीसीपी एंडपॉइंट को ट्रैक करता है और aEndpoint में टीसीपी डेटा को स्टोर और हासिल करता है. ऐप्लिकेशन को aEndpoint में फ़ील्ड को सीधे ऐक्सेस करने या उसमें बदलाव करने से बचना चाहिए. अगर ऐप्लिकेशन को aEndpoint के लिए बैक अप की गई मेमोरी को फिर से पाने की ज़रूरत है, तो इसे otTcpEndpointDeinitialize() को कॉल करना चाहिए.

ब्यौरा
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
[in] aEndpoint
टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर.
[in] aArgs
आर्ग्युमेंट के स्ट्रक्चर के लिए पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
टीसीपी एंडपॉइंट को खोला गया.
OT_ERROR_FAILED
टीसीपी एंडपॉइंट को नहीं खोला जा सका.

otTcpGetLocalAddress

const otSockAddr * otTcpGetLocalAddress(
  const otTcpEndpoint *aEndpoint
)

टीसीपी एंडपॉइंट के लोकल होस्ट और पोर्ट के लिए पॉइंटर हासिल करता है.

अगर यह सॉकेट कनेक्टेड स्थिति में न हो और पिछली बार डिसकनेक्ट होने के बाद बाइंड न किया गया हो, तो होस्ट और पोर्ट की सामग्री पुरानी हो सकती है.

ब्यौरा
पैरामीटर
[in] aEndpoint
वह टीसीपी एंडपॉइंट जिसका लोकल होस्ट और पोर्ट पाना है.
लौटाए गए सामान
aEndpoint का लोकल होस्ट और पोर्ट.

otTcpGetPeerAddress

const otSockAddr * otTcpGetPeerAddress(
  const otTcpEndpoint *aEndpoint
)

टीसीपी एंडपॉइंट के पीयर के होस्ट और पोर्ट के लिए पॉइंटर हासिल करता है.

अगर यह सॉकेट कनेक्ट की गई स्थिति में नहीं है, तो होस्ट और पोर्ट की सामग्री पुरानी हो सकती है.

ब्यौरा
पैरामीटर
[in] aEndpoint
वह टीसीपी एंडपॉइंट जिसके पीयर का होस्ट और पोर्ट पाना है.
लौटाए गए सामान
aEndpoint के कनेक्शन पीयर का होस्ट और पोर्ट.

otTcpListen

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

इसकी वजह से, आने वाले ऐसे टीसीपी कनेक्शन होते हैं जो दिए गए आईपी पते और पोर्ट से मैच करते हैं. इससे, टीसीपी लिसनर के कॉलबैक ट्रिगर होते हैं.

ब्यौरा
पैरामीटर
[in] aListener
टीसीपी लिसनर स्ट्रक्चर के लिए एक पॉइंटर, जिसे सुनना शुरू करना चाहिए.
[in] aSockName
वह पता और पोर्ट जिस पर इनकमिंग कनेक्शन की जानकारी सुनना है.
रिटर्न वैल्यू
OT_ERROR_NONE
टीसीपी लिसनर पर, सुनना शुरू किया गया.
OT_ERROR_FAILED
टीसीपी लिसनर पर लिसनिंग शुरू नहीं की जा सकी.

otTcpListenerDeinitialize

otError otTcpListenerDeinitialize(
  otTcpListener *aListener
)

यह टीसीपी लिसनर को बंद कर देता है.

इसका मतलब है कि OpenThread अब इस टीसीपी लिसनर को ट्रैक नहीं करता है. साथ ही, यह उन सभी संसाधनों को हटा देता है जो इसे टीसीपी लिसनर के लिए अंदरूनी तौर पर असाइन करते हैं. ऐप्लिकेशन, टीसीपी लिसनर के साथ काम करने वाली मेमोरी का फिर से इस्तेमाल कर सकता है.

अगर टीसीपी लिसनर फ़िलहाल सुन रहा है, तो यह सुनना बंद कर देगा.

ब्यौरा
पैरामीटर
[in] aListener
डीइनिशियलाइज़ करने के लिए, टीसीपी लिसनर स्ट्रक्चर का पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
टीसीपी लिसनर को बंद किया गया.
OT_ERROR_FAILED
टीसीपी लिसनर को शुरू नहीं किया जा सका.

otTcpListenerGetContext

void * otTcpListenerGetContext(
  otTcpListener *aListener
)

शुरू होने पर, aListener से जुड़े कॉन्टेक्स्ट पॉइंटर को हासिल करता है.

ब्यौरा
पैरामीटर
[in] aListener
वह टीसीपी लिसनर जिसका कॉन्टेक्स्ट पाना है.
लौटाए गए सामान
aListener से जुड़ा कॉन्टेक्स्ट पॉइंटर.

otTcpListenerGetInstance

otInstance * otTcpListenerGetInstance(
  otTcpListener *aListener
)

शुरू होने पर, aListener से जुड़े otइंस्टेंस को हासिल करता है.

ब्यौरा
पैरामीटर
[in] aListener
वह टीसीपी लिसनर जिसका इंस्टेंस पाना है.
लौटाए गए सामान
aListener से जुड़ा ओटइंस्टेंस पॉइंटर.

otTcpListenerInitialize

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

टीसीपी लिसनर को शुरू करता है.

इस फ़ंक्शन को कॉल करने से OpenThread, टीसीपी लिसनर को ट्रैक करता है और aListener में टीसीपी डेटा को स्टोर और इकट्ठा करता है. ऐप्लिकेशन को aListener में फ़ील्ड को सीधे ऐक्सेस करने या उसमें बदलाव करने से बचना चाहिए. अगर ऐप्लिकेशन को aListener के लिए बैक अप की गई मेमोरी को फिर से पाने की ज़रूरत है, तो इसे otTcpListenerDeinitialize() को कॉल करना चाहिए.

ब्यौरा
पैरामीटर
[in] aInstance
OpenThread इंस्टेंस के लिए पॉइंटर.
[in] aListener
टीसीपी लिसनर स्ट्रक्चर के लिए पॉइंटर.
[in] aArgs
आर्ग्युमेंट के स्ट्रक्चर के लिए पॉइंटर.
रिटर्न वैल्यू
OT_ERROR_NONE
टीसीपी लिसनर खोला गया.
OT_ERROR_FAILED
टीसीपी लिसनर को नहीं खोला जा सका.

otTcpReceiveByReference

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

ऐप्लिकेशन को लिंक की गई बफ़र चेन के साथ देता है. यह टीसीपी रिसीव बफ़र में मौजूद डेटा का रेफ़रंस देता है.

लिंक की गई बफ़र चेन तब तक मान्य रहती है, जब तक कि "तैयार हों" कॉलबैक को फिर से लागू नहीं किया जाता. इसके अलावा, यह तब तक मान्य रहती है, जब तक कि otTcpReceiveContiguify() या otTcpCommitReceive() अगली कॉल को लागू नहीं किया जाता.

ब्यौरा
पैरामीटर
[in] aEndpoint
टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर, उस टीसीपी एंडपॉइंट को दिखाता है जिस पर डेटा पाना है.
[out] aBuffer
लिंक की गई बफ़र चेन का पॉइंटर, जो अभी रिसीव बफ़र में मौजूद डेटा का रेफ़रंस देता है.
रिटर्न वैल्यू
OT_ERROR_NONE
कार्रवाई पूरी हुई.
OT_ERROR_FAILED
कार्रवाई पूरी नहीं हो सकी.

otTcpReceiveContiguify

otError otTcpReceiveContiguify(
  otTcpEndpoint *aEndpoint
)

रिसीव बफ़र को मेमोरी में पूरी तरह से कंटिन्यू किए जाने के लिए फिर से व्यवस्थित करता है.

यह ज़रूरी नहीं है. ऐप्लिकेशन, otTcpReceiveByReference को कॉल करके लिंक की गई बफ़र चेन को पार कर सकता है. कुछ ऐप्लिकेशन अपने डेटा प्रोसेसिंग को आसान बनाने के लिए, इस फ़ंक्शन को कॉल करके बफ़र की प्रोसेस को आसान बना सकते हैं. हालांकि, इसके लिए सीपीयू समय की यह रकम खर्च करना पड़ता है, ताकि रिसीव बफ़र में डेटा को फिर से व्यवस्थित किया जा सके.

ब्यौरा
पैरामीटर
[in] aEndpoint
टीसीपी एंडपॉइंट का पॉइंटर, जिसे फिर से व्यवस्थित करने के लिए बफ़र मिलता है.
रिटर्न वैल्यू
OT_ERROR_NONE
कार्रवाई पूरी हुई.
OT_ERROR_FAILED
कार्रवाई पूरी नहीं हो सकी.

otTcpSendByExtension

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

भेजने के बफ़र में तय रकम के हिसाब से आखिरी otLinkedBuffer की लंबाई को बढ़ाकर, भेजें बफ़र में डेटा जोड़ता है.

अगर भेजने का बफ़र खाली है, तो कार्रवाई नहीं हो पाएगी.

ब्यौरा
पैरामीटर
[in] aEndpoint
टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर, उस टीसीपी एंडपॉइंट को दिखाता है जिस पर डेटा भेजना है.
[in] aNumBytes
लिंक किए गए आखिरी बफ़र की लंबाई को बढ़ाने के लिए बाइट की संख्या.
[in] aFlags
इस कार्रवाई के लिए विकल्प बताने वाले फ़्लैग (ऊपर दी गई सूची देखें).
रिटर्न वैल्यू
OT_ERROR_NONE
भेजें बफ़र में डेटा सफलतापूर्वक जोड़ा गया.
OT_ERROR_FAILED
भेजें बफ़र में डेटा नहीं जोड़ा जा सका.

otTcpSendByReference

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

यह बटन, लिंक किए गए बफ़र का रेफ़र किया गया डेटा जोड़ता है. इसे aBuffer ने भेजे गए बफ़र में रेफ़र किया था.

इस फ़ंक्शन को कॉल करने के बाद, लिंक किए गए बफ़र और उसमें इस्तेमाल किए गए डेटा का मालिकाना हक टीसीपी स्टैक के पास होता है. ऐप्लिकेशन को इनमें तब तक बदलाव नहीं करना चाहिए, जब तक "भेजा गया" कॉलबैक ऐप्लिकेशन को उन ऑब्जेक्ट का मालिकाना हक न दे दे. भेजे जाने वाली सूची में लिंक किया गया कोई दूसरा बफ़र जोड़ने के लिए, इस फ़ंक्शन को कॉल किया जा सकता है. भले ही, इस फ़ंक्शन के लिए पहले शुरू की गई कार्रवाई के लिए "भेजा गया" कॉलबैक अभी तक ट्रिगर न हुआ हो.

ध्यान दें कि aBuffer को चेन नहीं होना चाहिए. इसका mNext फ़ील्ड NULL होना चाहिए. अगर इस कॉल के तुरंत बाद अतिरिक्त डेटा जोड़ा जाता है, तो टीसीपी को लागू करने के संकेत के तौर पर OT_TCP_SEND_MORE_TO_COME फ़्लैग का इस्तेमाल किया जाना चाहिए.

ब्यौरा
पैरामीटर
[in] aEndpoint
टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर, उस टीसीपी एंडपॉइंट को दिखाता है जिस पर डेटा भेजना है.
[in] aBuffer
लिंक की गई बफ़र चेन का पॉइंटर, जो 'भेजें' बफ़र में डेटा का रेफ़रंस देता है.
[in] aFlags
इस कार्रवाई के लिए विकल्प बताने वाले फ़्लैग (ऊपर दी गई सूची देखें).
रिटर्न वैल्यू
OT_ERROR_NONE
भेजें बफ़र में डेटा सफलतापूर्वक जोड़ा गया.
OT_ERROR_FAILED
भेजें बफ़र में डेटा नहीं जोड़ा जा सका.

otTcpSendEndOfStream

otError otTcpSendEndOfStream(
  otTcpEndpoint *aEndpoint
)

इससे, कनेक्शन पीयर को सूचना मिलती है कि यह टीसीपी एंडपॉइंट ज़्यादा डेटा नहीं भेजेगा.

इसका इस्तेमाल तब किया जाना चाहिए, जब ऐप्लिकेशन के पास कनेक्शन पीयर को भेजने के लिए और डेटा न हो. इस कनेक्शन के लिए, कनेक्शन पीयर पर आने वाले समय के डेटा को "स्ट्रीम बंद करें" शर्त के तौर पर माना जाएगा. साथ ही, इस कनेक्शन एंडपॉइंट पर आने वाले समय में इससे जुड़े डेटा को एक्सपोर्ट नहीं किया जा सकेगा.

"स्ट्रीम का समय खत्म होने" की शर्त सिर्फ़ तब लागू होती है, जब बाहर भेजने के लिए टीसीपी स्टैक को पहले दिया गया कोई डेटा, कनेक्शन पीयर को मिल जाए.

ब्यौरा
पैरामीटर
[in] aEndpoint
टीसीपी एंडपॉइंट स्ट्रक्चर का पॉइंटर, जो टीसीपी एंडपॉइंट को शट डाउन करता है.
रिटर्न वैल्यू
OT_ERROR_NONE
"स्ट्रीम खत्म होने" की शर्त को ट्रांसमिशन के लिए सूची में शामिल किया गया.
OT_ERROR_FAILED
ट्रांसमिशन के लिए "स्ट्रीम का समय खत्म होने" की शर्त को सूची में नहीं जोड़ा जा सका.

otTcpStopListening

otError otTcpStopListening(
  otTcpListener *aListener
)

इसकी वजह से, यह टीसीपी लिसनर इनकमिंग कनेक्शन को सुनना बंद कर देता है.

ब्यौरा
पैरामीटर
[in] aListener
टीसीपी लिसनर स्ट्रक्चर के लिए एक पॉइंटर, जिसे सुनना बंद कर देना चाहिए.
रिटर्न वैल्यू
OT_ERROR_NONE
टीसीपी लिसनर पर सुनना बंद कर दिया गया.
OT_ERROR_FAILED
टीसीपी लिसनर पर सुनना बंद नहीं किया जा सका.

मैक्रो

OT_TCP_ENDPOINT_TCB_NUM_PTR

 OT_TCP_ENDPOINT_TCB_NUM_PTR 36

OT_TCP_ENDPOINT_TCB_SIZE_BASE

 OT_TCP_ENDPOINT_TCB_SIZE_BASE 392

OT_TCP_ENDPOINT_TCB_SIZE_BASE और OT_TCP_ENDPOINT_TCB_NUM_POINTERS को इस तरह चुना गया है कि otTcpEndpoint के mTcb फ़ील्ड का साइज़, टीसीपीएलपी में स्ट्रक्चर tcpcb के बराबर है.

ऐसा करना इसलिए ज़रूरी है, क्योंकि टीसीपी लागू करने में mTcb फ़ील्ड की जानकारी ओपेक है, लेकिन टीसीपी लागू करने में इसे स्ट्रक्चर tcpcb के तौर पर माना जाता है.

OT_TCP_LISTENER_TCB_NUM_PTR

 OT_TCP_LISTENER_TCB_NUM_PTR 3

OT_TCP_LISTENER_TCB_SIZE_BASE

 OT_TCP_LISTENER_TCB_SIZE_BASE 16

OT_TCP_LISTENER_TCB_SIZE_BASE और OT_TCP_LISTENER_TCB_NUM_POINTERS को इस तरह चुना जाता है कि otTcpListener के mTcbListener फ़ील्ड का साइज़ वही है जिसका साइज़, टीसीपीएलp में संरचना tcpcb_listen का है.

ऐसा इसलिए ज़रूरी है, क्योंकि टीसीपी लागू करने में mTcbलिस फ़ील्ड को ओपेक माना जाता है, लेकिन टीसीपी लागू करने में इसे स्ट्रक्चर tcpcb के तौर पर माना जाता है.

OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS 2598

तीन वायरलेस हॉप या उससे कम वायरलेस हॉप करने वाले टीसीपी कनेक्शन के लिए, बफ़र साइज़ का सुझाव दिया जाता है.

उन प्लैटफ़ॉर्म पर जहां मेमोरी खास तौर पर सीमित होती है और ज़्यादा बैंडविड्थ की ज़रूरत न होने पर, मैन्युअल रूप से छोटा बफ़र साइज़ चुनना बेहतर होता है.

OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS 4157

ऐसे टीसीपी कनेक्शन के लिए सुझाया गया बफ़र साइज़ जो कई वायरलेस हॉप को पार करता है.

अगर टीसीपी कनेक्शन बहुत ज़्यादा बार हॉप (छह से ज़्यादा) पार करता है, तो मैन्युअल तरीके से बड़ा बफ़र साइज़ चुनने की सलाह दी जाती है.

संसाधन

OpenThread API के रेफ़रंस के विषय, सोर्स कोड से मिलते हैं. यह सोर्स GitHub पर उपलब्ध है. ज़्यादा जानकारी या हमारे दस्तावेज़ में योगदान देने के लिए, संसाधन देखें.