টিসিপি

এই মডিউল টিসিপি যোগাযোগ নিয়ন্ত্রণ করে এমন ফাংশন অন্তর্ভুক্ত করে।

সারসংক্ষেপ

গণনা

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
ইনকামিং সংযোগ কর্ম সংজ্ঞায়িত করে।

Typedefs

otLinkedBuffer typedef
TCP-এর সাথে ব্যবহারের জন্য একটি লিঙ্কযুক্ত বাফার কাঠামো।
otTcpAcceptDone )(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer) typedef
void(*
এই কলব্যাকটি নির্দেশ করে যে TCP সংযোগ এখন দ্বিমুখী যোগাযোগের জন্য প্রস্তুত৷
otTcpAcceptReady )(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto) typedef
এই কলব্যাকটি নির্দেশ করে যে একটি ইনকামিং সংযোগ যা এই TCP শ্রোতার সাথে মেলে।
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-ওয়ে হ্যান্ডশেক সম্পূর্ণ হয়েছে এবং সংযোগটি এখন প্রতিষ্ঠিত হয়েছে।
otTcpForwardProgress )(otTcpEndpoint *aEndpoint, size_t aInSendBuffer, size_t aBacklog) typedef
void(*
সেন্ড বাফার থেকে প্রাপকের কাছে ডেটা স্থানান্তর করার ক্ষেত্রে অগ্রগতি করা হয়েছে কিনা এই কলব্যাকটি অ্যাপ্লিকেশনটিকে জানায়।
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 এবং এতে থাকা ডেটা অ্যাপ্লিকেশন দ্বারা পুনঃ দাবি করা যেতে পারে৷

ফাংশন

otTcpAbort ( otTcpEndpoint *aEndpoint)
এই TCP এন্ডপয়েন্টের সাথে যুক্ত TCP সংযোগ জোর করে শেষ করে।
otTcpBind ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName)
একটি IP ঠিকানা এবং পোর্টের সাথে TCP এন্ডপয়েন্ট আবদ্ধ করে।
otTcpCommitReceive ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
টিসিপি স্ট্যাককে অবহিত করে যে অ্যাপ্লিকেশনটি রিসিভ বাফারের শুরুতে aNumBytes বাইট ডেটা প্রক্রিয়াকরণ শেষ করেছে এবং টিসিপি স্ট্যাকের রিসিভ বাফারে সেই বাইটগুলি বজায় রাখার প্রয়োজন নেই।
otTcpConnect ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName, uint32_t aFlags)
এই সংযোগের জন্য দূরবর্তী হোস্ট এবং পোর্ট রেকর্ড করে।
otTcpEndpointDeinitialize ( otTcpEndpoint *aEndpoint)
এই TCP এন্ডপয়েন্ট ডিইনিশিয়ালাইজ করে।
otTcpEndpointGetContext ( otTcpEndpoint *aEndpoint)
void *
প্রারম্ভিককরণের পরে aEndpoint সাথে সম্পর্কিত প্রসঙ্গ পয়েন্টার প্রাপ্ত করে।
otTcpEndpointGetInstance ( otTcpEndpoint *aEndpoint)
সূচনা করার সময় aEndpoint সাথে যুক্ত otInstance প্রাপ্ত করে।
otTcpEndpointInitialize ( otInstance *aInstance, otTcpEndpoint *aEndpoint, const otTcpEndpointInitializeArgs *aArgs)
একটি TCP শেষ পয়েন্ট শুরু করে।
otTcpGetLocalAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
একটি TCP এন্ডপয়েন্টের স্থানীয় হোস্ট এবং পোর্টে একটি পয়েন্টার পায়।
otTcpGetPeerAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
একটি টিসিপি এন্ডপয়েন্টের পিয়ার হোস্ট এবং পোর্টে একটি পয়েন্টার পায়।
otTcpListen ( otTcpListener *aListener, const otSockAddr *aSockName)
এই TCP শ্রোতাদের কলব্যাকগুলিকে ট্রিগার করার জন্য নির্দিষ্ট আইপি ঠিকানা এবং পোর্টের সাথে মেলে ইনকামিং TCP সংযোগের কারণ।
otTcpListenerDeinitialize ( otTcpListener *aListener)
এই TCP শ্রোতাকে ডিনিটিয়ালাইজ করে।
otTcpListenerGetContext ( otTcpListener *aListener)
void *
সূচনা করার সময় aListener এর সাথে সম্পর্কিত প্রসঙ্গ পয়েন্টারটি পায়।
otTcpListenerGetInstance ( otTcpListener *aListener)
সূচনা করার পরে aListener এর সাথে যুক্ত otInstance প্রাপ্ত করে।
otTcpListenerInitialize ( otInstance *aInstance, otTcpListener *aListener, const otTcpListenerInitializeArgs *aArgs)
একটি TCP শ্রোতা শুরু করে।
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)
কানেকশন পিয়ারকে জানায় যে এই TCP এন্ডপয়েন্ট আর ডেটা পাঠাবে না।
otTcpStopListening ( otTcpListener *aListener)
এই TCP শ্রোতাকে ইনকামিং সংযোগের জন্য শোনা বন্ধ করে দেয়।

কাঠামো

otLinkedBuffer

TCP-এর সাথে ব্যবহারের জন্য একটি লিঙ্কযুক্ত বাফার কাঠামো।

otTcpEndpoint

একটি TCP শেষ পয়েন্ট প্রতিনিধিত্ব করে।

otTcpEndpointInitializeArgs

otTcpEndpointInitialize() ফাংশনের আর্গুমেন্ট রয়েছে।

otTcpListener

একজন TCP শ্রোতার প্রতিনিধিত্ব করে।

otTcpListenerInitializeArgs

otTcpListenerInitialize() ফাংশনের আর্গুমেন্ট রয়েছে।

গণনা

বেনামী enum

 anonymous enum

otTcpConnect() এ পাস করা পতাকাগুলিকে সংজ্ঞায়িত করে।

বেনামী enum

 anonymous enum

otTcpSendByReference এ পাস করা পতাকাগুলিকে সংজ্ঞায়িত করে।

otTcpDisconnected Reason

 otTcpDisconnectedReason

otTcpIncomingConnectionAction

 otTcpIncomingConnectionAction

ইনকামিং সংযোগ কর্ম সংজ্ঞায়িত করে।

এটি otTcpAcceptReady() কলব্যাকে ব্যবহৃত হয়।

বৈশিষ্ট্য
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT

ইনকামিং সংযোগ গ্রহণ করুন.

OT_TCP_INCOMING_CONNECTION_ACTION_DEFER

আগত সংযোগটি স্থগিত করুন (নিঃশব্দে উপেক্ষা করুন)।

OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE

ইনকামিং সংযোগ প্রত্যাখ্যান.

Typedefs

otLinkedBuffer

struct otLinkedBuffer otLinkedBuffer

TCP-এর সাথে ব্যবহারের জন্য একটি লিঙ্কযুক্ত বাফার কাঠামো।

একটি একক otLinkedBuffer কাঠামো mData এবং mLength এর মাধ্যমে মেমরিতে বাইটের একটি অ্যারে উল্লেখ করে। mNext ক্ষেত্রটি otLinkedBuffer কাঠামোর একটি চেইন তৈরি করতে ব্যবহৃত হয়।

otTcpAcceptDone

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

এই কলব্যাকটি নির্দেশ করে যে TCP সংযোগ এখন দ্বিমুখী যোগাযোগের জন্য প্রস্তুত৷

TCP ফাস্ট ওপেনের ক্ষেত্রে, এটি TCP কানেকশন হ্যান্ডশেক সম্পূর্ণ হওয়ার আগে হতে পারে। অ্যাপ্লিকেশনটি সংযোগটি গ্রহণকারী TCP শ্রোতার জন্য এবং যে TCP এন্ডপয়েন্টে এটি গ্রহণ করা হয়েছিল উভয়ের জন্য প্রসঙ্গ পয়েন্টার সরবরাহ করা হয়েছে। প্রদত্ত প্রসঙ্গটি টিসিপি শ্রোতার সাথে যুক্ত।

বিস্তারিত
পরামিতি
[in] aListener
TCP শ্রোতা যা ইনকামিং সংযোগের সাথে মেলে।
[in] aEndpoint
TCP এন্ডপয়েন্ট যেখানে ইনকামিং কানেকশন গৃহীত হয়েছিল।
[in] aPeer
হোস্ট এবং পোর্ট যেখান থেকে ইনকামিং সংযোগের উৎপত্তি হয়েছে।

otTcpAcceptReady

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

এই কলব্যাকটি নির্দেশ করে যে একটি ইনকামিং সংযোগ যা এই TCP শ্রোতার সাথে মেলে।

আগত সংযোগ গ্রহণ করার জন্য আবেদনের জন্য সাধারণ প্রতিক্রিয়া। এটি otTcpEndpoint- এ একটি পয়েন্টার সহ aAcceptInto পপুলেট করে যাতে ইনকামিং সংযোগ গ্রহণ করা যায়। এই 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 এন্ডপয়েন্ট যেখানে ইনকামিং সংযোগ গ্রহণ করতে হবে।
রিটার্নস
ইনকামিং সংযোগ কিভাবে পরিচালনা করতে হয় তার বর্ণনা।

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_REASON_NO এর সাথে)।

বিস্তারিত
পরামিতি
[in] aEndpoint
TCP এন্ডপয়েন্ট যার সংযোগ বিচ্ছিন্ন হয়েছে।
[in] aReason
যে কারণে সংযোগ বিচ্ছিন্ন হয়ে যায়।

otTcpDisconnected Reason

enum otTcpDisconnectedReason otTcpDisconnectedReason

otTcpEndpoint

struct otTcpEndpoint otTcpEndpoint

otTcpEndpointInitializeArgs

struct otTcpEndpointInitializeArgs otTcpEndpointInitializeArgs

otTcpEndpointInitialize() ফাংশনের আর্গুমেন্ট রয়েছে।

otTcp প্রতিষ্ঠিত

void(* otTcpEstablished)(otTcpEndpoint *aEndpoint)

এই কলব্যাকটি অ্যাপ্লিকেশনটিকে জানায় যে TCP 3-ওয়ে হ্যান্ডশেক সম্পূর্ণ হয়েছে এবং সংযোগটি এখন প্রতিষ্ঠিত হয়েছে।

বিস্তারিত
পরামিতি
[in] aEndpoint
TCP এন্ডপয়েন্ট যার সংযোগ এখন প্রতিষ্ঠিত হয়েছে।

otTcpForwardProgress

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

সেন্ড বাফার থেকে প্রাপকের কাছে ডেটা স্থানান্তর করার ক্ষেত্রে অগ্রগতি করা হয়েছে কিনা এই কলব্যাকটি অ্যাপ্লিকেশনটিকে জানায়।

সঠিক TCP অপারেশনের জন্য এই কলব্যাকের প্রয়োজন নেই। টিসিপি স্ট্যাক ব্যবহার করা হয়ে গেলে বেশিরভাগ অ্যাপ্লিকেশন লিঙ্কযুক্ত বাফারগুলি পুনরুদ্ধার করতে শুধুমাত্র otTcpSendDone() কলব্যাকের উপর নির্ভর করতে পারে। এই কলব্যাকের উদ্দেশ্য হল অ্যাডভান্সড অ্যাপ্লিকেশানগুলিকে সমর্থন করা যা সংযোগ পিয়ারের কাছে ডেটা স্থানান্তর করার ক্ষেত্রে সংযোগটি কীভাবে অগ্রগতি করছে সে সম্পর্কে সূক্ষ্ম তথ্য থেকে উপকৃত হয়৷

এই কলব্যাকের ক্রিয়াকলাপটি TCP-এর প্রেরণ বাফারের সাথে ঘনিষ্ঠভাবে আবদ্ধ। পাঠান বাফার দুটি অঞ্চল আছে বোঝা যায়. প্রথমত, সেন্ড বাফারের মাথায় (সামনে) "ইন-ফ্লাইট" অঞ্চল রয়েছে। এটি প্রাপকের কাছে পাঠানো ডেটার সাথে মিলে যায়, কিন্তু এখনও স্বীকার করা হয়নি। দ্বিতীয়ত, "ব্যাকলগ" অঞ্চল রয়েছে, যা পাঠান বাফারের সমস্ত ডেটা নিয়ে গঠিত যা "ইন-ফ্লাইট" অঞ্চলে নেই। "ব্যাকলগ" অঞ্চলটি ডেটার সাথে সম্পর্কিত যা পাঠানোর জন্য সারিবদ্ধ, কিন্তু এখনও পাঠানো হয়নি৷

দুই ধরনের ইভেন্টের প্রতিক্রিয়া হিসেবে কলব্যাক আহ্বান করা হয়। প্রথমত, সেন্ড বাফারের "ইন-ফ্লাইট" অঞ্চল সঙ্কুচিত হতে পারে (যেমন, যখন প্রাপক আমাদের আগে পাঠানো ডেটা স্বীকার করে)। দ্বিতীয়ত, পাঠান বাফারের "ব্যাকলগ" অঞ্চল সঙ্কুচিত হতে পারে (যেমন, নতুন ডেটা পাঠানো হয়েছিল)। এই দুটি অবস্থা প্রায়ই একই সময়ে ঘটতে পারে, সংযোগ পিয়ার থেকে একটি ACK সেগমেন্টের প্রতিক্রিয়ায়, যে কারণে তারা একটি একক কলব্যাকে একত্রিত হয়।

TCP স্ট্যাক শুধুমাত্র পাঠান বাফারের লেজে aInSendBuffer বাইট ব্যবহার করে; যখন aInSendBuffer একটি পরিমাণ x দ্বারা হ্রাস পায়, এর অর্থ হল যে x অতিরিক্ত বাইটগুলি যা পূর্বে প্রেরণ বাফারের প্রধান ছিল সেগুলি আর প্রেরণ বাফারের অংশ নয় এবং এখন অ্যাপ্লিকেশন দ্বারা পুনরায় দাবি করা যেতে পারে (অর্থাৎ, ওভাররাইট)। মনে রাখবেন যে otLinkedBuffer গঠনটি শুধুমাত্র একবারই পুনরুদ্ধার করা যেতে পারে সমস্ত বাইট যে এটির রেফারেন্স পাঠানো বাফারের অংশ নয়।

এই কলব্যাকটি নিম্নোক্ত অর্থে otTcpSendDone() সাবসুম করে: প্রতিটি লিঙ্কযুক্ত বাফারে কতগুলি বাইট রয়েছে তার সাথে aInSendBuffer তুলনা করে অ্যাপ্লিকেশনগুলি নির্ধারণ করতে পারে কখন লিঙ্ক করা বাফারগুলি পুনরায় দাবি করা যেতে পারে৷ যাইহোক, আমরা আশা করি otTcpSendDone() , যা সরাসরি বোঝায় যে কোন otLinkedBuffers পুনরায় দাবি করা যেতে পারে, ব্যবহার করা আরও সহজ। যদি উভয় কলব্যাক নিবন্ধিত হয় এবং একই ইভেন্ট দ্বারা ট্রিগার করা হয় (উদাহরণস্বরূপ, একই ACK সেগমেন্ট প্রাপ্ত), তাহলে otTcpSendDone() কলব্যাকটি প্রথমে ট্রিগার হবে, তারপরে এই কলব্যাকটি।

অতিরিক্তভাবে, এই কলব্যাকটি aBacklog প্রদান করে, যা নির্দেশ করে পাঠায় বাফারে কত বাইট ডেটা এখনও ফ্লাইটে নেই। যে অ্যাপ্লিকেশনগুলি শুধুমাত্র পাঠান বাফারে ডেটা যোগ করতে চায় যখন একটি আশ্বাস আছে যে এটি শীঘ্রই পাঠানো হবে, তখনই ডেটা পাঠানো বাঞ্ছনীয় হতে পারে যখন aBacklog উপযুক্তভাবে ছোট (0 বা 0 এর কাছাকাছি)। উদাহরণস্বরূপ, একটি অ্যাপ্লিকেশন aBacklog ব্যবহার করতে পারে যাতে এটি ডেটার ব্যাকলগ তৈরি এড়াতে ডেটা ড্রপ বা একত্রিত করে সারি তৈরিতে প্রতিক্রিয়া জানাতে পারে।

otTcpSendByReference() বা otTcpSendByExtension() তে একটি ধনাত্মক সংখ্যক বাইট সহ কল ​​করার পর, otTcpForwardProgress() কলব্যাক কল করার নিশ্চয়তা দেওয়া হয়, যাতে সেন্ড বাফারে যোগ করা বাইটগুলি কখন পাঠানো হয় তা নির্দেশ করে৷ otTcpForwardProgress() এ কলটি পাঠানোর বাফারে বাইট যোগ করার পরপরই করা হতে পারে (যদি সেই বাইটগুলির মধ্যে কিছু অবিলম্বে পাঠানো হয়, ব্যাকলগ হ্রাস করে), অথবা ভবিষ্যতে কিছু সময় (একবার সংযোগটি কিছু বা সমস্তটি পাঠালে) তথ্য, ব্যাকলগ হ্রাস)। "অবিলম্বে" দ্বারা আমরা বলতে চাই যে কলব্যাক অবিলম্বে একটি টাস্কলেটে কার্যকর করার জন্য নির্ধারিত হয়েছে; পুনরায় প্রবেশ-সম্পর্কিত জটিলতা এড়াতে, otTcpForwardProgress() কলব্যাক সরাসরি otTcpSendByReference() বা otTcpSendByExtension() ফাংশন থেকে কল করা হয় না।

বিস্তারিত
পরামিতি
[in] aEndpoint
সংযোগের জন্য TCP শেষ পয়েন্ট।
[in] aInSendBuffer
সেন্ড বাফারে বাইটের সংখ্যা ("ইন-ফ্লাইট" এবং "ব্যাকলগ" অঞ্চলের সমষ্টি)।
[in] aBacklog
বাইটের সংখ্যা যা পাঠানোর জন্য সারিবদ্ধ কিন্তু এখনও পাঠানো হয়নি ("ব্যাকলগ" অঞ্চল)।

otTcpIncomingConnectionAction

enum otTcpIncomingConnectionAction otTcpIncomingConnectionAction

ইনকামিং সংযোগ কর্ম সংজ্ঞায়িত করে।

এটি otTcpAcceptReady() কলব্যাকে ব্যবহৃত হয়।

otTcpListener

struct otTcpListener otTcpListener

otTcpListenerInitializeArgs

struct otTcpListenerInitializeArgs otTcpListenerInitializeArgs

otTcpListenerInitialize() ফাংশনের আর্গুমেন্ট রয়েছে।

otTcpReceive উপলব্ধ

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 otTcpSendByExtension() এর মাধ্যমে প্রভাবিত যেকোন এক্সটেনশনগুলি সহ, otTcpSendByReference() এর মাধ্যমে TCP-এ পাস করা ব্যক্তির সাথে অভিন্ন হওয়ার নিশ্চয়তা রয়েছে৷

বিস্তারিত
পরামিতি
[in] aEndpoint
সংযোগের জন্য TCP শেষ পয়েন্ট।
[in] aData
otLinkedBuffer- এর একটি পয়েন্টার যা পুনরুদ্ধার করা যেতে পারে।

ফাংশন

otTcpAbort

otError otTcpAbort(
  otTcpEndpoint *aEndpoint
)

এই TCP এন্ডপয়েন্টের সাথে যুক্ত TCP সংযোগ জোর করে শেষ করে।

এটি অবিলম্বে টিসিপি এন্ডপয়েন্টকে অন্য সংযোগের জন্য ব্যবহারের জন্য বিনামূল্যে করে দেয় এবং প্রেরণ এবং গ্রহণ বাফারগুলি খালি করে, otTcpSendByReference() এবং otTcpSendByExtension() কলে অ্যাপ্লিকেশন দ্বারা প্রদত্ত যেকোন ডেটার মালিকানা স্থানান্তর করে৷ টিসিপি এন্ডপয়েন্টের কলব্যাক এবং রিসিভ বাফারের মেমরি টিসিপি এন্ডপয়েন্টের সাথে যুক্ত থাকে।

বিস্তারিত
পরামিতি
[in] aEndpoint
TCP এন্ডপয়েন্ট স্ট্রাকচারের একটি পয়েন্টার যা TCP এন্ডপয়েন্টকে বাতিল করার জন্য উপস্থাপন করে।
রিটার্ন মান
OT_ERROR_NONE
TCP এন্ডপয়েন্টের সংযোগ সফলভাবে বাতিল করা হয়েছে।
OT_ERROR_FAILED
TCP এন্ডপয়েন্টের সংযোগ বাতিল করতে ব্যর্থ হয়েছে৷

otTcpBind

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

একটি IP ঠিকানা এবং পোর্টের সাথে TCP এন্ডপয়েন্ট আবদ্ধ করে।

বিস্তারিত
পরামিতি
[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
)

টিসিপি স্ট্যাককে অবহিত করে যে অ্যাপ্লিকেশনটি রিসিভ বাফারের শুরুতে aNumBytes বাইট ডেটা প্রক্রিয়াকরণ শেষ করেছে এবং টিসিপি স্ট্যাকের রিসিভ বাফারে সেই বাইটগুলি বজায় রাখার প্রয়োজন নেই।

বিস্তারিত
পরামিতি
[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
)

এই সংযোগের জন্য দূরবর্তী হোস্ট এবং পোর্ট রেকর্ড করে।

aFlags ব্যবহার করে TCP ফাস্ট ওপেন সক্রিয় বা অক্ষম করতে হবে। যদি এটি নিষ্ক্রিয় করা হয়, তাহলে TCP সংযোগ স্থাপন হ্যান্ডশেক অবিলম্বে শুরু হয়। যদি এটি সক্ষম করা থাকে, তাহলে এই ফাংশনটি কেবল দূরবর্তী হোস্ট এবং পোর্ট রেকর্ড করে এবং TCP সংযোগ স্থাপন হ্যান্ডশেক শুধুমাত্র প্রথম কলে ঘটবে otTcpSendByReference()

যদি TCP ফাস্ট ওপেন অক্ষম করা থাকে, তাহলে কলকারীকে অবশ্যই otTcpEstablished কলব্যাকের জন্য অপেক্ষা করতে হবে যা নির্দেশ করে যে TCP সংযোগ স্থাপন হ্যান্ডশেক করা হয়েছে ডেটা পাঠানো শুরু করার আগে যেমন, otTcpSendByReference() কল করে।

বিস্তারিত
পরামিতি
[in] aEndpoint
সংযোগ করার জন্য TCP এন্ডপয়েন্ট কাঠামোর একটি পয়েন্টার।
[in] aSockName
হোস্টের IP ঠিকানা এবং পোর্ট যা সংযোগ করতে হবে।
[in] aFlags
এই ক্রিয়াকলাপের জন্য পতাকা নির্দিষ্ট করে বিকল্পগুলি (উপরের গণনা দেখুন)।
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে অপারেশন সম্পন্ন.
OT_ERROR_FAILED
অপারেশন সম্পূর্ণ করতে ব্যর্থ হয়েছে.

otTcpEndpointDeinitialize

otError otTcpEndpointDeinitialize(
  otTcpEndpoint *aEndpoint
)

এই TCP এন্ডপয়েন্ট ডিইনিশিয়ালাইজ করে।

এর মানে হল যে OpenThread আর এই TCP এন্ডপয়েন্টের ট্র্যাক রাখে না এবং এই TCP এন্ডপয়েন্টের জন্য অভ্যন্তরীণভাবে বরাদ্দ করা সমস্ত সংস্থান ডিলকেট করে। অ্যাপ্লিকেশনটি টিসিপি এন্ডপয়েন্টকে উপযুক্ত মনে করে মেমরিকে ব্যাক করে পুনরায় ব্যবহার করতে পারে।

যদি এটি একটি লাইভ TCP সংযোগের সাথে মিলে যায়, সংযোগটি অপ্রত্যাশিতভাবে বন্ধ করা হয় (যেমন otTcpAbort() )। এই টিসিপি এন্ডপয়েন্টের জন্য অ্যাপ্লিকেশনটি সরবরাহ করেছে এমন সমস্ত সংস্থান (সেন্ড বাফারের জন্য লিঙ্কযুক্ত বাফার, রিসিভ বাফারের জন্য মেমরি, 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
)

সূচনা করার সময় aEndpoint সাথে যুক্ত otInstance প্রাপ্ত করে।

বিস্তারিত
পরামিতি
[in] aEndpoint
TCP এন্ডপয়েন্ট যার উদাহরণ পেতে হবে।
রিটার্নস
aEndpoint এর সাথে যুক্ত otInstance পয়েন্টার।

otTcpEndpointInitialize

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

একটি TCP শেষ পয়েন্ট শুরু করে।

এই ফাংশনটিকে কল করার ফলে OpenThread টিসিপি এন্ডপয়েন্টের ট্র্যাক রাখে এবং aEndpoint ভিতরে TCP ডেটা সংরক্ষণ ও পুনরুদ্ধার করে। অ্যাপ্লিকেশনটি 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
)

একটি টিসিপি এন্ডপয়েন্টের পিয়ার হোস্ট এবং পোর্টে একটি পয়েন্টার পায়।

হোস্ট এবং পোর্টের বিষয়বস্তু বাসি হতে পারে যদি এই সকেটটি সংযুক্ত অবস্থায় না থাকে।

বিস্তারিত
পরামিতি
[in] aEndpoint
TCP এন্ডপয়েন্ট যার পিয়ার হোস্ট এবং পোর্ট পেতে হবে।
রিটার্নস
aEndpoint সংযোগ পিয়ারের হোস্ট এবং পোর্ট।

otTcp শুনুন

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

এই TCP শ্রোতাদের কলব্যাকগুলিকে ট্রিগার করার জন্য নির্দিষ্ট আইপি ঠিকানা এবং পোর্টের সাথে মেলে ইনকামিং TCP সংযোগের কারণ।

বিস্তারিত
পরামিতি
[in] aListener
TCP শ্রোতা কাঠামোর একটি পয়েন্টার যা শোনা শুরু করা উচিত।
[in] aSockName
ঠিকানা এবং পোর্ট যেখানে ইনকামিং কানেকশন শুনতে হবে।
রিটার্ন মান
OT_ERROR_NONE
TCP লিসেনারে শ্রবণ সফলভাবে শুরু হয়েছে৷
OT_ERROR_FAILED
TCP লিসেনারে শোনা শুরু করতে ব্যর্থ হয়েছে৷

otTcpListenerDeinitialize

otError otTcpListenerDeinitialize(
  otTcpListener *aListener
)

এই TCP শ্রোতাকে ডিনিটিয়ালাইজ করে।

এর মানে হল যে OpenThread আর এই TCP শ্রোতার ট্র্যাক রাখে না এবং এই TCP শ্রোতার জন্য অভ্যন্তরীণভাবে বরাদ্দ করা সমস্ত সংস্থান ডিলকেট করে। অ্যাপ্লিকেশনটি টিসিপি শ্রোতাকে উপযুক্ত মনে করে মেমরিকে সমর্থন করে পুনরায় ব্যবহার করতে পারে।

যদি TCP শ্রোতা বর্তমানে শুনছেন, এটি শোনা বন্ধ করে দেয়।

বিস্তারিত
পরামিতি
[in] aListener
ডিনিটিয়ালাইজ করার জন্য TCP শ্রোতা কাঠামোর একটি পয়েন্টার।
রিটার্ন মান
OT_ERROR_NONE
TCP শ্রোতাকে সফলভাবে ডিইনিশিয়ালাইজ করা হয়েছে।
OT_ERROR_FAILED
TCP শ্রোতাকে ডিনিটিয়ালাইজ করতে ব্যর্থ হয়েছে৷

otTcpListenerGetContext

void * otTcpListenerGetContext(
  otTcpListener *aListener
)

সূচনা করার সময় aListener এর সাথে সম্পর্কিত প্রসঙ্গ পয়েন্টারটি পায়।

বিস্তারিত
পরামিতি
[in] aListener
টিসিপি শ্রোতা যার প্রসঙ্গ প্রাপ্ত করতে হবে।
রিটার্নস
aListener এর সাথে সম্পর্কিত প্রসঙ্গ পয়েন্টার।

otTcpListenerGetInstance

otInstance * otTcpListenerGetInstance(
  otTcpListener *aListener
)

সূচনা করার পরে aListener এর সাথে যুক্ত otInstance প্রাপ্ত করে।

বিস্তারিত
পরামিতি
[in] aListener
টিসিপি শ্রোতা যার উদাহরণ প্রাপ্ত করতে হবে।
রিটার্নস
aListener এর সাথে যুক্ত otInstance পয়েন্টার।

otTcpListenerInitialize

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

একটি TCP শ্রোতা শুরু করে।

এই ফাংশনটি কল করার ফলে OpenThread টিসিপি শ্রোতার ট্র্যাক রাখতে এবং aListener ভিতরে TCP ডেটা সংরক্ষণ ও পুনরুদ্ধার করতে পারে। aListener ক্ষেত্রগুলিতে সরাসরি অ্যাক্সেস বা পরিবর্তন করা থেকে অ্যাপ্লিকেশনটিকে বিরত থাকতে হবে। যদি অ্যাপ্লিকেশনটির মেমরি ব্যাকিং aListener পুনরুদ্ধার করতে হয় তবে এটিকে কল করা উচিত otTcpListenerDeinitialize()

বিস্তারিত
পরামিতি
[in] aInstance
একটি OpenThread উদাহরণের একটি পয়েন্টার.
[in] aListener
একটি TCP শ্রোতা কাঠামোর একটি পয়েন্টার।
[in] aArgs
আর্গুমেন্টের কাঠামোর একটি নির্দেশক।
রিটার্ন মান
OT_ERROR_NONE
TCP লিসেনার সফলভাবে খোলা হয়েছে।
OT_ERROR_FAILED
TCP লিসেনার খুলতে ব্যর্থ হয়েছে৷

otTcpReceiveByReference

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

টিসিপি রিসিভ বাফারে বর্তমানে একটি লিঙ্কযুক্ত বাফার চেইন রেফারেন্সিং ডেটা সহ অ্যাপ্লিকেশনটি প্রদান করে।

লিঙ্ক করা বাফার চেইনটি বৈধ থাকে যতক্ষণ না "রিসিভ রেডি" কলব্যাকটি পরবর্তীতে আহ্বান করা হয়, অথবা otTcpReceiveContiguify() বা otTcpCommitReceive() কে পরবর্তী কল না করা পর্যন্ত।

বিস্তারিত
পরামিতি
[in] aEndpoint
TCP এন্ডপয়েন্ট স্ট্রাকচারের একটি পয়েন্টার যা TCP এন্ডপয়েন্টের প্রতিনিধিত্ব করে যার উপর ডেটা গ্রহণ করা হবে।
[out] aBuffer
বর্তমানে রিসিভ বাফারে সংযুক্ত বাফার চেইন রেফারেন্সিং ডেটার একটি পয়েন্টার।
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে অপারেশন সম্পন্ন.
OT_ERROR_FAILED
অপারেশন সম্পূর্ণ করতে ব্যর্থ হয়েছে.

otTcpReceiveContiguify

otError otTcpReceiveContiguify(
  otTcpEndpoint *aEndpoint
)

মেমরিতে সম্পূর্ণরূপে সংলগ্ন হতে রিসিভ বাফারকে পুনর্গঠিত করে।

এটি ঐচ্ছিক; একটি অ্যাপ্লিকেশন সহজভাবে otTcpReceiveByReference কল করে প্রাপ্ত লিঙ্কযুক্ত বাফার চেইন অতিক্রম করতে পারে। কিছু অ্যাপ্লিকেশন তাদের ডেটা প্রসেসিংকে সহজ করার জন্য রিসিভ বাফারটিকে সংলগ্ন করার জন্য এই ফাংশনটিকে কল করতে পারে, তবে এটি রিসিভ বাফারে ডেটা পুনর্গঠন করার জন্য CPU সময় ব্যয় করে আসে।

বিস্তারিত
পরামিতি
[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 ক্ষেত্রটি NULL হওয়া উচিত। যদি এই কলের ঠিক পরে অতিরিক্ত ডেটা যোগ করা হয়, তাহলে OT_TCP_SEND_MORE_TO_COME পতাকা টিসিপি বাস্তবায়নের ইঙ্গিত হিসাবে ব্যবহার করা উচিত৷

বিস্তারিত
পরামিতি
[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_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 ফিল্ডের আকার TCPlp-এ struct tcpcb-এর সমান।

এটি প্রয়োজনীয় কারণ mTcb ক্ষেত্রটি, যদিও তার ঘোষণায় অস্বচ্ছ, TCP বাস্তবায়নে struct 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 ক্ষেত্রটি TCPlp-এ struct tcpcb_listen-এর আকারের সমান।

এটি প্রয়োজনীয় কারণ mTcbListen ক্ষেত্র, যদিও তার ঘোষণায় অস্বচ্ছ, TCP বাস্তবায়নে struct tcpcb হিসাবে বিবেচিত হয়।

OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS 2598

TCP সংযোগের জন্য প্রস্তাবিত বাফার আকার যা প্রায় 3টি বেতার হপ বা তার কম অতিক্রম করে।

প্ল্যাটফর্মগুলিতে যেখানে মেমরি বিশেষভাবে সীমাবদ্ধ এবং এমন পরিস্থিতিতে যেখানে উচ্চ ব্যান্ডউইথের প্রয়োজন হয় না, ম্যানুয়ালি একটি ছোট বাফার আকার নির্বাচন করা বাঞ্ছনীয় হতে পারে।

OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS 4157

TCP সংযোগের জন্য প্রস্তাবিত বাফার আকার যা অনেক বেতার হপ অতিক্রম করে।

যদি TCP সংযোগটি খুব বেশি সংখ্যক হপসকে অতিক্রম করে (6 বা তার বেশি), তাহলে ম্যানুয়ালি একটি বড় বাফার আকার নির্বাচন করার পরামর্শ দেওয়া যেতে পারে।

সম্পদ

OpenThread API রেফারেন্স বিষয়গুলি উৎস কোড থেকে উদ্ভূত হয়, যা GitHub- এ উপলব্ধ। আরও তথ্যের জন্য, বা আমাদের ডকুমেন্টেশনে অবদান রাখতে, সম্পদ দেখুন।

,

টিসিপি

এই মডিউল টিসিপি যোগাযোগ নিয়ন্ত্রণ করে এমন ফাংশন অন্তর্ভুক্ত করে।

সারসংক্ষেপ

গণনা

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
ইনকামিং সংযোগ কর্ম সংজ্ঞায়িত করে।

Typedefs

otLinkedBuffer typedef
TCP-এর সাথে ব্যবহারের জন্য একটি লিঙ্কযুক্ত বাফার কাঠামো।
otTcpAcceptDone )(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer) typedef
void(*
এই কলব্যাকটি নির্দেশ করে যে TCP সংযোগ এখন দ্বিমুখী যোগাযোগের জন্য প্রস্তুত৷
otTcpAcceptReady )(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto) typedef
এই কলব্যাকটি নির্দেশ করে যে একটি ইনকামিং সংযোগ যা এই TCP শ্রোতার সাথে মেলে।
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-ওয়ে হ্যান্ডশেক সম্পূর্ণ হয়েছে এবং সংযোগটি এখন প্রতিষ্ঠিত হয়েছে।
otTcpForwardProgress )(otTcpEndpoint *aEndpoint, size_t aInSendBuffer, size_t aBacklog) typedef
void(*
সেন্ড বাফার থেকে প্রাপকের কাছে ডেটা স্থানান্তর করার ক্ষেত্রে অগ্রগতি করা হয়েছে কিনা এই কলব্যাকটি অ্যাপ্লিকেশনটিকে জানায়।
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 এবং এতে থাকা ডেটা অ্যাপ্লিকেশন দ্বারা পুনঃ দাবি করা যেতে পারে৷

ফাংশন

otTcpAbort ( otTcpEndpoint *aEndpoint)
এই TCP এন্ডপয়েন্টের সাথে যুক্ত TCP সংযোগ জোর করে শেষ করে।
otTcpBind ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName)
একটি IP ঠিকানা এবং পোর্টের সাথে TCP এন্ডপয়েন্ট আবদ্ধ করে।
otTcpCommitReceive ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
টিসিপি স্ট্যাককে অবহিত করে যে অ্যাপ্লিকেশনটি রিসিভ বাফারের শুরুতে aNumBytes বাইট ডেটা প্রক্রিয়াকরণ শেষ করেছে এবং টিসিপি স্ট্যাকের রিসিভ বাফারে সেই বাইটগুলি বজায় রাখার প্রয়োজন নেই।
otTcpConnect ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName, uint32_t aFlags)
এই সংযোগের জন্য দূরবর্তী হোস্ট এবং পোর্ট রেকর্ড করে।
otTcpEndpointDeinitialize ( otTcpEndpoint *aEndpoint)
এই TCP এন্ডপয়েন্ট ডিইনিশিয়ালাইজ করে।
otTcpEndpointGetContext ( otTcpEndpoint *aEndpoint)
void *
প্রারম্ভিককরণের পরে aEndpoint সাথে সম্পর্কিত প্রসঙ্গ পয়েন্টার প্রাপ্ত করে।
otTcpEndpointGetInstance ( otTcpEndpoint *aEndpoint)
সূচনা করার সময় aEndpoint সাথে যুক্ত otInstance প্রাপ্ত করে।
otTcpEndpointInitialize ( otInstance *aInstance, otTcpEndpoint *aEndpoint, const otTcpEndpointInitializeArgs *aArgs)
একটি TCP শেষ পয়েন্ট শুরু করে।
otTcpGetLocalAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
একটি TCP এন্ডপয়েন্টের স্থানীয় হোস্ট এবং পোর্টে একটি পয়েন্টার পায়।
otTcpGetPeerAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
একটি টিসিপি এন্ডপয়েন্টের পিয়ার হোস্ট এবং পোর্টে একটি পয়েন্টার পায়।
otTcpListen ( otTcpListener *aListener, const otSockAddr *aSockName)
এই TCP শ্রোতাদের কলব্যাকগুলিকে ট্রিগার করার জন্য নির্দিষ্ট আইপি ঠিকানা এবং পোর্টের সাথে মেলে ইনকামিং TCP সংযোগের কারণ।
otTcpListenerDeinitialize ( otTcpListener *aListener)
এই TCP শ্রোতাকে ডিনিটিয়ালাইজ করে।
otTcpListenerGetContext ( otTcpListener *aListener)
void *
সূচনা করার সময় aListener এর সাথে সম্পর্কিত প্রসঙ্গ পয়েন্টারটি পায়।
otTcpListenerGetInstance ( otTcpListener *aListener)
সূচনা করার পরে aListener এর সাথে যুক্ত otInstance প্রাপ্ত করে।
otTcpListenerInitialize ( otInstance *aInstance, otTcpListener *aListener, const otTcpListenerInitializeArgs *aArgs)
একটি TCP শ্রোতা শুরু করে।
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)
কানেকশন পিয়ারকে জানায় যে এই TCP এন্ডপয়েন্ট আর ডেটা পাঠাবে না।
otTcpStopListening ( otTcpListener *aListener)
এই TCP শ্রোতাকে ইনকামিং সংযোগের জন্য শোনা বন্ধ করে দেয়।

কাঠামো

otLinkedBuffer

TCP-এর সাথে ব্যবহারের জন্য একটি লিঙ্কযুক্ত বাফার কাঠামো।

otTcpEndpoint

একটি TCP শেষ পয়েন্ট প্রতিনিধিত্ব করে।

otTcpEndpointInitializeArgs

otTcpEndpointInitialize() ফাংশনের আর্গুমেন্ট রয়েছে।

otTcpListener

একজন TCP শ্রোতার প্রতিনিধিত্ব করে।

otTcpListenerInitializeArgs

otTcpListenerInitialize() ফাংশনের আর্গুমেন্ট রয়েছে।

গণনা

বেনামী enum

 anonymous enum

otTcpConnect() এ পাস করা পতাকাগুলিকে সংজ্ঞায়িত করে।

বেনামী enum

 anonymous enum

otTcpSendByReference এ পাস করা পতাকাগুলিকে সংজ্ঞায়িত করে।

otTcpDisconnected Reason

 otTcpDisconnectedReason

otTcpIncomingConnectionAction

 otTcpIncomingConnectionAction

ইনকামিং সংযোগ কর্ম সংজ্ঞায়িত করে।

এটি otTcpAcceptReady() কলব্যাকে ব্যবহৃত হয়।

বৈশিষ্ট্য
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT

ইনকামিং সংযোগ গ্রহণ করুন.

OT_TCP_INCOMING_CONNECTION_ACTION_DEFER

আগত সংযোগটি স্থগিত করুন (নিঃশব্দে উপেক্ষা করুন)।

OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE

ইনকামিং সংযোগ প্রত্যাখ্যান.

Typedefs

otLinkedBuffer

struct otLinkedBuffer otLinkedBuffer

TCP-এর সাথে ব্যবহারের জন্য একটি লিঙ্কযুক্ত বাফার কাঠামো।

একটি একক otLinkedBuffer কাঠামো mData এবং mLength এর মাধ্যমে মেমরিতে বাইটের একটি অ্যারে উল্লেখ করে। mNext ক্ষেত্রটি otLinkedBuffer কাঠামোর একটি চেইন তৈরি করতে ব্যবহৃত হয়।

otTcpAcceptDone

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

এই কলব্যাকটি নির্দেশ করে যে TCP সংযোগ এখন দ্বিমুখী যোগাযোগের জন্য প্রস্তুত৷

TCP ফাস্ট ওপেনের ক্ষেত্রে, এটি TCP কানেকশন হ্যান্ডশেক সম্পূর্ণ হওয়ার আগে হতে পারে। অ্যাপ্লিকেশনটি সংযোগটি গ্রহণকারী TCP শ্রোতার জন্য এবং যে TCP এন্ডপয়েন্টে এটি গ্রহণ করা হয়েছিল উভয়ের জন্য প্রসঙ্গ পয়েন্টার সরবরাহ করা হয়েছে। প্রদত্ত প্রসঙ্গটি টিসিপি শ্রোতার সাথে যুক্ত।

বিস্তারিত
পরামিতি
[in] aListener
TCP শ্রোতা যা ইনকামিং সংযোগের সাথে মেলে।
[in] aEndpoint
TCP এন্ডপয়েন্ট যেখানে ইনকামিং কানেকশন গৃহীত হয়েছিল।
[in] aPeer
হোস্ট এবং পোর্ট যেখান থেকে ইনকামিং সংযোগের উৎপত্তি হয়েছে।

otTcpAcceptReady

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

এই কলব্যাকটি নির্দেশ করে যে একটি ইনকামিং সংযোগ যা এই TCP শ্রোতার সাথে মেলে।

আগত সংযোগ গ্রহণ করার জন্য আবেদনের জন্য সাধারণ প্রতিক্রিয়া। এটি otTcpEndpoint- এ একটি পয়েন্টার সহ aAcceptInto পপুলেট করে যাতে ইনকামিং সংযোগ গ্রহণ করা যায়। এই 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 এন্ডপয়েন্ট যেখানে ইনকামিং সংযোগ গ্রহণ করতে হবে।
রিটার্নস
ইনকামিং সংযোগ কিভাবে পরিচালনা করতে হয় তার বর্ণনা।

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_REASON_NO এর সাথে)।

বিস্তারিত
পরামিতি
[in] aEndpoint
TCP এন্ডপয়েন্ট যার সংযোগ বিচ্ছিন্ন হয়েছে।
[in] aReason
যে কারণে সংযোগ বিচ্ছিন্ন হয়ে যায়।

otTcpDisconnected Reason

enum otTcpDisconnectedReason otTcpDisconnectedReason

otTcpEndpoint

struct otTcpEndpoint otTcpEndpoint

otTcpEndpointInitializeArgs

struct otTcpEndpointInitializeArgs otTcpEndpointInitializeArgs

otTcpEndpointInitialize() ফাংশনের আর্গুমেন্ট রয়েছে।

otTcp প্রতিষ্ঠিত

void(* otTcpEstablished)(otTcpEndpoint *aEndpoint)

এই কলব্যাকটি অ্যাপ্লিকেশনটিকে জানায় যে TCP 3-ওয়ে হ্যান্ডশেক সম্পূর্ণ হয়েছে এবং সংযোগটি এখন প্রতিষ্ঠিত হয়েছে।

বিস্তারিত
পরামিতি
[in] aEndpoint
TCP এন্ডপয়েন্ট যার সংযোগ এখন প্রতিষ্ঠিত হয়েছে।

otTcpForwardProgress

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

প্রাপকের কাছে প্রেরণ বাফার থেকে ডেটা স্থানান্তর করার ক্ষেত্রে যদি অগ্রগতি হয় তবে এই কলব্যাক অ্যাপ্লিকেশনটিকে অবহিত করে।

সঠিক টিসিপি অপারেশনের জন্য এই কলব্যাকটি প্রয়োজনীয় নয়। বেশিরভাগ অ্যাপ্লিকেশনগুলি কেবলমাত্র টিসিপি স্ট্যাকগুলি ব্যবহার করে শেষ হয়ে গেলে লিঙ্কযুক্ত বাফারগুলি পুনরায় দাবি করতে ওটিসিপেন্ডসেন্ডোন () কলব্যাকের উপর নির্ভর করতে পারে। এই কলব্যাকের উদ্দেশ্য হ'ল উন্নত অ্যাপ্লিকেশনগুলিকে সমর্থন করা যা সংযোগটি কীভাবে সংযোগ পিয়ারের কাছে ডেটা স্থানান্তর করতে অগ্রগতি অর্জন করছে সে সম্পর্কে সূক্ষ্ম-দানাযুক্ত তথ্য থেকে উপকৃত হয়।

এই কলব্যাকের অপারেশনটি টিসিপির প্রেরণ বাফারের সাথে ঘনিষ্ঠভাবে আবদ্ধ। প্রেরণ বাফার দুটি অঞ্চল হিসাবে বোঝা যায়। প্রথমত, প্রেরণ বাফারের মাথার (সামনের) "ইন-ফ্লাইট" অঞ্চল রয়েছে। এটি এমন ডেটার সাথে সম্পর্কিত যা প্রাপকের কাছে প্রেরণ করা হয়েছে, তবে এখনও স্বীকৃত নয়। দ্বিতীয়ত, "ব্যাকলগ" অঞ্চল রয়েছে, যা প্রেরণ বাফারে সমস্ত ডেটা নিয়ে গঠিত যা "ইন-ফ্লাইট" অঞ্চলে নেই। "ব্যাকলগ" অঞ্চলটি এমন ডেটার সাথে মিলে যা প্রেরণের জন্য সারি করা হয়, তবে এখনও প্রেরণ করা হয়নি।

দুটি ধরণের ইভেন্টের প্রতিক্রিয়া হিসাবে কলব্যাকটি আহ্বান করা হয়। প্রথমত, প্রেরণ বাফারের "ইন-ফ্লাইট" অঞ্চল সঙ্কুচিত হতে পারে (যেমন, যখন প্রাপক আমরা আগে প্রেরণ করেছি এমন ডেটা স্বীকার করে)। দ্বিতীয়ত, প্রেরণ বাফারের "ব্যাকলগ" অঞ্চল সঙ্কুচিত হতে পারে (যেমন, নতুন ডেটা প্রেরণ করা হয়েছিল)। এই দুটি শর্ত প্রায়শই একই সময়ে ঘটে, সংযোগ পিয়ার থেকে এসি কে বিভাগের প্রতিক্রিয়া হিসাবে, এ কারণেই তারা একক কলব্যাকে একত্রিত হয়।

টিসিপি স্ট্যাক কেবল প্রেরণ বাফারের লেজে aInSendBuffer বাইট ব্যবহার করে; যখন aInSendBuffer একটি পরিমাণ এক্স দ্বারা হ্রাস পায়, তখন এর অর্থ হ'ল এক্স অতিরিক্ত বাইটগুলি যা আগে প্রেরণ বাফারের শীর্ষে ছিল তারা আর প্রেরণ বাফারের অংশ নয় এবং এখন অ্যাপ্লিকেশন দ্বারা পুনরুদ্ধার করা যেতে পারে (অর্থাত্ ওভাররাইট)। নোট করুন যে ওটলিঙ্কডবফার কাঠামোটি নিজেই কেবল একবার বাইটে পুনরায় দাবি করা যেতে পারে যে এটির উল্লেখগুলি আর প্রেরণ বাফারের অংশ নয়।

এই কলব্যাকটি নিম্নলিখিত অর্থে ওটসিপসেন্ডডোন () কে গ্রহণ করে: অ্যাপ্লিকেশনগুলি নির্ধারণ করতে পারে যখন লিঙ্কযুক্ত বাফারগুলি প্রতিটি লিঙ্কযুক্ত বাফারে কতগুলি বাইট রয়েছে তার সাথে aInSendBuffer তুলনা করে পুনরুদ্ধার করা যেতে পারে। তবে, আমরা ওটিটিসিপিএসএনডোন () আশা করি, যা সরাসরি যেটি ওটলিংকডবাফারগুলি পুনরুদ্ধার করা যেতে পারে তা সরাসরি জানায়, এটি ব্যবহার করার জন্য আরও সহজ হতে পারে। যদি উভয় কলব্যাক নিবন্ধিত হয় এবং একই ইভেন্টের দ্বারা ট্রিগার করা হয় (যেমন, একই এসি কে বিভাগটি প্রাপ্ত), তবে ওটিটিসিপিএসএনডিডোন () কলব্যাকটি প্রথমে ট্রিগার করা হবে, তারপরে এই কলব্যাকটি অনুসরণ করা হবে।

অতিরিক্তভাবে, এই কলব্যাকটি aBacklog সরবরাহ করে, যা নির্দেশ করে যে প্রেরণ বাফারে কতগুলি বাইট ডেটা এখনও ফ্লাইটে নেই। এমন অ্যাপ্লিকেশনগুলির জন্য যা কেবলমাত্র প্রেরণ বাফারে ডেটা যুক্ত করতে চায় যখন কোনও আশ্বাস থাকে যে এটি শীঘ্রই প্রেরণ করা হবে, তখন কেবল যখন aBacklog যথাযথভাবে ছোট (0 বা 0 এর কাছাকাছি) থাকে তখন কেবল ডেটা প্রেরণ করা বাঞ্ছনীয় হতে পারে। উদাহরণস্বরূপ, কোনও অ্যাপ্লিকেশন aBacklog ব্যবহার করতে পারে যাতে এটি ডেটা ব্যাকলগ তৈরি এড়াতে ডেটা ড্রপ বা একত্রিত করে সারি বিল্ডআপে প্রতিক্রিয়া জানাতে পারে।

OTTCPSENDBYEREFERENCE () বা OTTCPSENDBYEXTENTION () এ একটি ইতিবাচক সংখ্যক বাইটের সাথে কল করার পরে, OTTCPForwardProgrress () কলব্যাক কলব্যাকের কলব্যাকের গ্যারান্টিযুক্ত, যখন প্রেরণ বাফারে যুক্ত করা হয়েছিল সেগুলি কখন প্রেরণ করা হয় তা নির্দেশ করতে। OTTCPForwardProgress () এর কলটি বাইটগুলি প্রেরণ বাফারে যুক্ত হওয়ার সাথে সাথেই করা যেতে পারে (যদি সেই বাইটগুলির মধ্যে কিছু অবিলম্বে প্রেরণ করা হয়, ব্যাকলগটি হ্রাস করা হয়), বা ভবিষ্যতে কোনও এক সময় (একবার সংযোগটি কিছু বা সমস্ত কিছু প্রেরণ করে ডেটা, ব্যাকলগ হ্রাস)। "অবিলম্বে" দ্বারা, আমরা বলতে চাইছি যে কলব্যাকটি তাত্ক্ষণিকভাবে কোনও টাস্কেটে মৃত্যুদন্ড কার্যকর করার জন্য নির্ধারিত হয়েছে; রেন্ট্রেন্সি-সম্পর্কিত জটিলতা এড়াতে, ওটিটিসিপিফোরওয়ার্ডপ্রোগ্রেস () কলব্যাককে কখনই সরাসরি ওটিটিসিপেন্ডসেন্ডবাইরফারেন্স () বা ওটিটিসিপিএসএনডবাইবার্স্টেনশন () ফাংশনগুলি থেকে ডাকা হয় না।

বিস্তারিত
পরামিতি
[in] aEndpoint
সংযোগের জন্য টিসিপি শেষ পয়েন্ট।
[in] aInSendBuffer
প্রেরণ বাফারে বাইটের সংখ্যা ("ইন-ফ্লাইট" এবং "ব্যাকলগ" অঞ্চলগুলির যোগফল)।
[in] aBacklog
বাইটের সংখ্যা যা প্রেরণের জন্য সারি করা হয় তবে এখনও প্রেরণ করা হয়নি ("ব্যাকলগ" অঞ্চল)।

Ottcpincoming সংযোগ

enum otTcpIncomingConnectionAction otTcpIncomingConnectionAction

আগত সংযোগ ক্রিয়া সংজ্ঞায়িত করে।

এটি OTTCPACCEPTREADY () কলব্যাকে ব্যবহৃত হয়।

OTTCPLISTENER

struct otTcpListener otTcpListener

OTTCPLISTENERINITIALIZEARGS

struct otTcpListenerInitializeArgs otTcpListenerInitializeArgs

Ottcplistenerinitialize () ফাংশনে যুক্তিযুক্ত।

OTTCPRECEVEAVAILABLE

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 ওটিটিসিপেন্ডবাইরেন্স () এর মাধ্যমে টিসিপিতে পাস করা ব্যক্তিদের সাথে একই রকম হওয়ার গ্যারান্টিযুক্ত, ওটিটিসিপেন্ডসেন্ডবাইবার্সেনশন () এর মাধ্যমে প্রভাবিত যে কোনও এক্সটেনশন সহ।

বিস্তারিত
পরামিতি
[in] aEndpoint
সংযোগের জন্য টিসিপি শেষ পয়েন্ট।
[in] aData
Otlinkedbuffer এর একটি পয়েন্টার যা পুনরুদ্ধার করা যেতে পারে।

ফাংশন

Ottcpabort

otError otTcpAbort(
  otTcpEndpoint *aEndpoint
)

জোর করে এই টিসিপি এন্ডপয়েন্টের সাথে সম্পর্কিত টিসিপি সংযোগটি শেষ করে।

এটি অবিলম্বে টিসিপি এন্ডপয়েন্টটিকে অন্য সংযোগের জন্য ব্যবহারের জন্য বিনামূল্যে তৈরি করে এবং প্রেরণ এবং গ্রহণ করে বাফারগুলি খালি করে, OTTCPSENDBYEREFEREREARE () এবং OTTCPSENDBYEXTENTENTENTENTENTENTENTENTENTENTENTENTENTENTENTENS () অ্যাপ্লিকেশনটিতে ফিরে কল করে। টিসিপি এন্ডপয়েন্টের কলব্যাকস এবং রিসিভ বাফারের জন্য মেমরি টিসিপি এন্ডপয়েন্টের সাথে যুক্ত রয়েছে।

বিস্তারিত
পরামিতি
[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
অপারেশন সম্পূর্ণ করতে ব্যর্থ।

OTTCPENDPOINTDINITIALIZE

otError otTcpEndpointDeinitialize(
  otTcpEndpoint *aEndpoint
)

এই টিসিপি শেষ পয়েন্টটি ডাইনিটিয়ালাইজ করে।

এর অর্থ হ'ল ওপেনথ্রেড আর এই টিসিপি এন্ডপয়েন্টের উপর নজর রাখে না এবং এই টিসিপি এন্ডপয়েন্টের জন্য অভ্যন্তরীণভাবে বরাদ্দ করা সমস্ত সংস্থানগুলি ডিলোকেট করে। অ্যাপ্লিকেশনটি উপযুক্ত হিসাবে দেখলে টিসিপি এন্ডপয়েন্টকে সমর্থন করে মেমরিটি পুনরায় ব্যবহার করতে পারে।

যদি এটি কোনও লাইভ টিসিপি সংযোগের সাথে সম্পর্কিত হয় তবে সংযোগটি অনিচ্ছাকৃতভাবে সমাপ্ত করা হয় (যেমন ওটসপ্যাবোর্ট () হিসাবে)। অ্যাপ্লিকেশনটি এই টিসিপি এন্ডপয়েন্টের জন্য সরবরাহ করেছে এমন সমস্ত সংস্থান (প্রেরণ বাফারের জন্য লিঙ্কযুক্ত বাফার, রিসিভ বাফারের জন্য মেমরি, aEndpoint স্ট্রাকচার নিজেই ইত্যাদি) তাত্ক্ষণিকভাবে অ্যাপ্লিকেশনটিতে ফিরে আসে।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্ট স্ট্রাকচারের একটি পয়েন্টারকে ডাইনিটিয়ালাইজ করার জন্য।
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে টিসিপি শেষ পয়েন্টটি ডাইনিটিয়ালাইজড।
OT_ERROR_FAILED
টিসিপি এন্ডপয়েন্টটি ডাইনিটিয়ালাইজ করতে ব্যর্থ।

OTTCPENDPOINTGETCONTEXT

void * otTcpEndpointGetContext(
  otTcpEndpoint *aEndpoint
)

প্রারম্ভিক পয়েন্টারটি গ্রহণ করে যা সূচনার পরে aEndpoint সাথে যুক্ত ছিল।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্ট যার প্রসঙ্গটি পাওয়া উচিত।
রিটার্নস
aEndpoint সাথে যুক্ত প্রসঙ্গ পয়েন্টার।

OTTCPENDPOINTGETINSTANCE

otInstance * otTcpEndpointGetInstance(
  otTcpEndpoint *aEndpoint
)

সূচনা করার পরে aEndpoint সাথে যুক্ত ছিল এমন ওটিনস্ট্যান্সটি গ্রহণ করে।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্ট যার উদাহরণ পাওয়া উচিত।
রিটার্নস
ওটিনস্ট্যান্স পয়েন্টারটি aEndpoint সাথে যুক্ত।

OTTCPENDPOINTINITIALIZE

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

একটি টিসিপি শেষ পয়েন্ট আরম্ভ করে।

এই ফাংশনটি কল করার ফলে ওপেনথ্রেড টিসিপি এন্ডপয়েন্টের উপর নজর রাখতে এবং aEndpoint অভ্যন্তরে টিসিপি ডেটা সংরক্ষণ এবং পুনরুদ্ধার করে। অ্যাপ্লিকেশনটি সরাসরি aEndpoint অ্যাক্সেস বা সংশোধন করা থেকে বিরত থাকা উচিত। যদি অ্যাপ্লিকেশনটির মেমরি ব্যাকিং aEndpoint পুনরায় দাবি করা দরকার, তবে এটি ওটসিপেন্ডপয়েন্টডিনিটিয়ালাইজ () কল করা উচিত।

বিস্তারিত
পরামিতি
[in] aInstance
একটি OpenThread উদাহরণের একটি পয়েন্টার.
[in] aEndpoint
একটি টিসিপি শেষ পয়েন্ট কাঠামোর একটি পয়েন্টার।
[in] aArgs
যুক্তিগুলির কাঠামোর একটি পয়েন্টার।
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে টিসিপি শেষ পয়েন্টটি খুলেছে।
OT_ERROR_FAILED
টিসিপি শেষ পয়েন্টটি খুলতে ব্যর্থ।

Ottcpgetlocaladdress

const otSockAddr * otTcpGetLocalAddress(
  const otTcpEndpoint *aEndpoint
)

একটি টিসিপি এন্ডপয়েন্টের স্থানীয় হোস্ট এবং বন্দরে একটি পয়েন্টার প্রাপ্ত করে।

হোস্ট এবং পোর্টের বিষয়বস্তু বাসি হতে পারে যদি এই সকেটটি কোনও সংযুক্ত অবস্থায় না থাকে এবং এটি শেষ সংযোগ বিচ্ছিন্ন হওয়ার পরে আবদ্ধ না হয়।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্ট যার স্থানীয় হোস্ট এবং পোর্ট প্রাপ্ত হবে।
রিটার্নস
স্থানীয় হোস্ট এবং পোর্ট অফ aEndpoint

OTTCPGETPERADDRESS

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
টিসিপি শ্রোতার উপর শ্রবণ শুরু করতে ব্যর্থ।

OTTCPLISTENERDINITIALIZE

otError otTcpListenerDeinitialize(
  otTcpListener *aListener
)

এই টিসিপি শ্রোতার dinitializes।

এর অর্থ হ'ল ওপেনথ্রেড আর এই টিসিপি শ্রোতার উপর নজর রাখে না এবং এই টিসিপি শ্রোতার জন্য অভ্যন্তরীণভাবে বরাদ্দ করা সমস্ত সংস্থানকে ডিলোকেট করে। অ্যাপ্লিকেশনটি উপযুক্ত হিসাবে দেখলে টিসিপি শ্রোতাদের সমর্থন করে মেমরিটি পুনরায় ব্যবহার করতে পারে।

যদি টিসিপি শ্রোতা বর্তমানে শুনছেন, এটি শ্রবণ বন্ধ করে দেয়।

বিস্তারিত
পরামিতি
[in] aListener
টিসিপি শ্রোতার কাঠামোর একটি পয়েন্টারকে ডাইনিটিয়ালাইজ করার জন্য।
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে টিসিপি শ্রোতার ডাইনিটিয়ালাইজড।
OT_ERROR_FAILED
টিসিপি শ্রোতার ডাইনিটিয়ালাইজ করতে ব্যর্থ।

OTTCPLISTENERGETCONTEXT

void * otTcpListenerGetContext(
  otTcpListener *aListener
)

প্রারম্ভিক পয়েন্টারটি প্রাপ্ত করে যা আরম্ভের পরে aListener এর সাথে যুক্ত ছিল।

বিস্তারিত
পরামিতি
[in] aListener
টিসিপি শ্রোতা যার প্রসঙ্গটি অর্জন করতে হবে।
রিটার্নস
aListener এর সাথে যুক্ত প্রসঙ্গ পয়েন্টার।

OTTCPLISTENERGETINSTANCE

otInstance * otTcpListenerGetInstance(
  otTcpListener *aListener
)

আরম্ভের পরে aListener এর সাথে যুক্ত ছিল যে ওটিনস্ট্যান্স।

বিস্তারিত
পরামিতি
[in] aListener
টিসিপি শ্রোতা যার উদাহরণ পাওয়া উচিত।
রিটার্নস
aListener এর সাথে যুক্ত ওটিনস্ট্যান্স পয়েন্টার।

Ottcplistenerinitialize

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

একটি টিসিপি শ্রোতার সূচনা করে।

এই ফাংশনটি কল করার ফলে ওপেনথ্রেড টিসিপি শ্রোতার উপর নজর রাখতে এবং aListener অভ্যন্তরে টিসিপি ডেটা সংরক্ষণ এবং পুনরুদ্ধার করে। অ্যাপ্লিকেশনটি aListener ক্ষেত্রগুলিতে সরাসরি অ্যাক্সেস বা সংশোধন করা থেকে বিরত থাকা উচিত। যদি অ্যাপ্লিকেশনটির মেমরি ব্যাকিং aListener পুনরায় দাবি করা দরকার, তবে এটি OTTCPLISTENERDINITIALIZE () কল করা উচিত।

বিস্তারিত
পরামিতি
[in] aInstance
একটি OpenThread উদাহরণের একটি পয়েন্টার.
[in] aListener
একটি টিসিপি শ্রোতার কাঠামোর একটি পয়েন্টার।
[in] aArgs
যুক্তিগুলির কাঠামোর একটি পয়েন্টার।
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে টিসিপি শ্রোতা খুলেছে।
OT_ERROR_FAILED
টিসিপি শ্রোতা খুলতে ব্যর্থ।

OTTCPRECEIVEBYEREARENCE

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

টিসিপি রিসিভ বাফারে বর্তমানে একটি লিঙ্কযুক্ত বাফার চেইন রেফারেন্সিং ডেটা সহ অ্যাপ্লিকেশন সরবরাহ করে।

লিঙ্কযুক্ত বাফার চেইনটি "রিসিড রেডি" কলব্যাকটি পরবর্তী অনুরোধ না করা পর্যন্ত বা OTTCPRECEVECONTIGUIFY () বা OTTCPCOMMITRECEIVE () এ পরবর্তী কল না হওয়া পর্যন্ত বৈধ।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্ট স্ট্রাকচারের একটি পয়েন্টার টিসিপি এন্ডপয়েন্টের প্রতিনিধিত্ব করে যার উপর ডেটা গ্রহণ করা যায়।
[out] aBuffer
লিঙ্কযুক্ত বাফার চেইন রেফারেন্সিং ডেটার একটি পয়েন্টার বর্তমানে রিসিভ বাফারে।
রিটার্ন মান
OT_ERROR_NONE
সাফল্যের সাথে অপারেশনটি সম্পন্ন করেছে।
OT_ERROR_FAILED
অপারেশন সম্পূর্ণ করতে ব্যর্থ।

OTTCPRECIVECONTIGUIFY

otError otTcpReceiveContiguify(
  otTcpEndpoint *aEndpoint
)

মেমরিতে সম্পূর্ণরূপে সুসংগত হতে প্রাপ্ত বাফারটিকে পুনর্গঠিত করে।

এটি ঐচ্ছিক; একটি অ্যাপ্লিকেশনটি কেবল otTcpReceiveByReference কল করে প্রাপ্ত লিঙ্কযুক্ত বাফার চেইনটি অতিক্রম করতে পারে। কিছু অ্যাপ্লিকেশনগুলি তাদের ডেটা প্রসেসিংকে সহজ করার জন্য রিসিভ বাফারকে সুসংগত করতে এই ফাংশনটি কল করতে চাইতে পারে তবে এটি সিপিইউ সময় ব্যয় করে রিসিভ বাফারে ডেটা পুনর্গঠিত করতে আসে।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্টের একটি পয়েন্টার যার পুনর্গঠনের জন্য বাফার গ্রহণ করে।
রিটার্ন মান
OT_ERROR_NONE
সাফল্যের সাথে অপারেশনটি সম্পন্ন করেছে।
OT_ERROR_FAILED
অপারেশন সম্পূর্ণ করতে ব্যর্থ।

OTTCPSENDBYEXTENTION

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

নির্দিষ্ট পরিমাণ দ্বারা প্রেরণ বাফারে চূড়ান্ত otlinkedbuffer এর দৈর্ঘ্য প্রসারিত করে প্রেরণ বাফারে ডেটা যুক্ত করে।

যদি প্রেরণ বাফারটি খালি থাকে তবে অপারেশনটি ব্যর্থ হয়।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্ট স্ট্রাকচারের একটি পয়েন্টার টিসিপি এন্ডপয়েন্টের প্রতিনিধিত্ব করে যার উপর ডেটা প্রেরণ করা যায়।
[in] aNumBytes
চূড়ান্ত লিঙ্কযুক্ত বাফারের দৈর্ঘ্য প্রসারিত করার জন্য বাইটের সংখ্যা।
[in] aFlags
এই অপারেশনের জন্য বিকল্পগুলি নির্দিষ্ট করে পতাকাগুলি (উপরে গণনা দেখুন)।
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে প্রেরণ বাফারে ডেটা যুক্ত করেছে।
OT_ERROR_FAILED
প্রেরণ বাফারে ডেটা যুক্ত করতে ব্যর্থ।

OTTCPSENDBYEREFEREREREREARE

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

লিঙ্কযুক্ত বাফার দ্বারা রেফারেন্সযুক্ত ডেটা যুক্ত করুন aBuffer দ্বারা নির্দেশিত বাফারে নির্দেশিত।

এই ফাংশনে একটি সফল কল করার পরে, লিঙ্কযুক্ত বাফার এবং ডেটা এটি রেফারেন্সগুলি টিসিপি স্ট্যাকের মালিকানাধীন; কোনও "প্রেরণ সম্পন্ন" কলব্যাক অ্যাপ্লিকেশনটিতে সেই অবজেক্টগুলির মালিকানা ফেরত না দেওয়া পর্যন্ত তাদের অ্যাপ্লিকেশন দ্বারা সংশোধন করা উচিত নয়। এই ফাংশনটির পূর্ববর্তী অনুরোধের জন্য "প্রেরণ সম্পন্ন" কলব্যাকটি এখনও চালিত না হলেও এই ফাংশনটি অন্য লিঙ্কযুক্ত বাফার যুক্ত করতে কল করা গ্রহণযোগ্য।

নোট করুন যে aBuffer শৃঙ্খলিত করা উচিত নয়; এর Mnext ক্ষেত্রটি বাতিল হওয়া উচিত। যদি এই কলটির ঠিক পরে অতিরিক্ত ডেটা যুক্ত করা হয়, তবে OT_TCP_SEND_MORE_TO_COMACOMAPLE TCP বাস্তবায়নের ইঙ্গিত হিসাবে ব্যবহার করা উচিত।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্ট স্ট্রাকচারের একটি পয়েন্টার টিসিপি এন্ডপয়েন্টের প্রতিনিধিত্ব করে যার উপর ডেটা প্রেরণ করা যায়।
[in] aBuffer
প্রেরণ বাফারে যুক্ত করতে লিঙ্কযুক্ত বাফার চেইনের রেফারেন্সিং ডেটার একটি পয়েন্টার।
[in] aFlags
এই অপারেশনের জন্য বিকল্পগুলি নির্দিষ্ট করে পতাকাগুলি (উপরে গণনা দেখুন)।
রিটার্ন মান
OT_ERROR_NONE
সফলভাবে প্রেরণ বাফারে ডেটা যুক্ত করেছে।
OT_ERROR_FAILED
প্রেরণ বাফারে ডেটা যুক্ত করতে ব্যর্থ।

OTTCPSENDENDOFSTREARE

otError otTcpSendEndOfStream(
  otTcpEndpoint *aEndpoint
)

সংযোগ পিয়ারকে অবহিত করে যে এই টিসিপি এন্ডপয়েন্টটি আরও ডেটা প্রেরণ করবে না।

এটি ব্যবহার করা উচিত যখন অ্যাপ্লিকেশনটির সংযোগ পিয়ারকে প্রেরণের জন্য আর কোনও ডেটা না থাকে। এই সংযোগের জন্য, ভবিষ্যতের সংযোগ পিয়ার পড়ার ফলে "স্ট্রিমের শেষ" শর্ত হবে এবং এই সংযোগে ভবিষ্যতের লেখার শেষ পয়েন্টটি ব্যর্থ হবে।

"স্ট্রিমের শেষ" শর্তটি কেবল টিসিপি স্ট্যাককে প্রেরণের জন্য সরবরাহ করা কোনও ডেটা সংযোগ পিয়ার দ্বারা প্রাপ্ত হওয়ার পরে প্রযোজ্য।

বিস্তারিত
পরামিতি
[in] aEndpoint
টিসিপি এন্ডপয়েন্ট স্ট্রাকচারের একটি পয়েন্টার টিসিপি এন্ডপয়েন্টটি বন্ধ করার জন্য উপস্থাপন করে।
রিটার্ন মান
OT_ERROR_NONE
সাফল্যের সাথে সংক্রমণের জন্য "স্ট্রিমের শেষ" শর্তটি সারিবদ্ধভাবে।
OT_ERROR_FAILED
সংক্রমণের জন্য "স্ট্রিমের শেষ" শর্তটি সারি করতে ব্যর্থ।

OTTCPSTOPLISTING

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_endpint_tcb_num_pointers এমনভাবে বেছে নেওয়া হয় যে ওটিসিপেন্ডপয়েন্টের এমটিসিবি ক্ষেত্রটি টিসিপিএলপিতে স্ট্রাক্ট টিসিপিসিবি হিসাবে একই আকার রয়েছে।

এটি প্রয়োজনীয় কারণ এমটিসিবি ক্ষেত্রটি যদিও এর ঘোষণায় অস্বচ্ছ, টিসিপি বাস্তবায়নে স্ট্রাক্ট টিসিপিসিবি হিসাবে বিবেচিত হয়।

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 এমনভাবে বেছে নেওয়া হয় যে টিসিপিএলপি -তে স্ট্রাক্ট টিসিপিসিবি_লিস্টেনের মতো ওটিটিসিপ্লিস্টেনারের এমটিসিব্লিস্টনার ক্ষেত্রের একই আকারের রয়েছে।

এটি প্রয়োজনীয় কারণ এমটিসিব্লিস্টেন ক্ষেত্রটি যদিও এর ঘোষণাপত্রে অস্বচ্ছ, টিসিপি বাস্তবায়নে স্ট্রাক্ট টিসিপিসিবি হিসাবে বিবেচিত হয়।

Ot_tcp_receive_buffer_size_few_hops

 OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS 2598

টিসিপি সংযোগগুলির জন্য প্রস্তাবিত বাফার আকার যা প্রায় 3 টি ওয়্যারলেস হপ বা তার চেয়ে কম ট্র্যাভার করে।

প্ল্যাটফর্মগুলিতে যেখানে মেমরিটি বিশেষত সীমাবদ্ধ এবং এমন পরিস্থিতিতে যেখানে উচ্চ ব্যান্ডউইথের প্রয়োজন হয় না, সেখানে ম্যানুয়ালি একটি ছোট বাফার আকার নির্বাচন করা বাঞ্ছনীয় হতে পারে।

Ot_tcp_receive_buffer_size_many_hops

 OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS 4157

টিসিপি সংযোগগুলির জন্য প্রস্তাবিত বাফার আকার যা অনেকগুলি ওয়্যারলেস হপকে অতিক্রম করে।

যদি টিসিপি সংযোগটি খুব বড় সংখ্যক হপগুলি (6 বা তার বেশি) অতিক্রম করে, তবে ম্যানুয়ালি একটি বৃহত বাফার আকার নির্বাচন করার পরামর্শ দেওয়া যেতে পারে।

সম্পদ

OpenThread API রেফারেন্স বিষয়গুলি উৎস কোড থেকে উদ্ভূত হয়, যা GitHub- এ উপলব্ধ। আরও তথ্যের জন্য, বা আমাদের ডকুমেন্টেশনে অবদান রাখতে, সম্পদ দেখুন।