nl:: اینت:: TCPEndPoint

#include <src/inet/TCPEndPoint.h>

اشیاء این کلاس نشان دهنده نقاط پایانی انتقال TCP هستند.

خلاصه

Nest Inet Layer روش‌هایی را برای تعامل با نقاط پایانی انتقال TCP (سوکت‌های SOCK_STREAM در لینوکس و سیستم‌های مشتق‌شده از BSD) یا بلوک‌های کنترل پروتکل LwIP TCP محصور می‌کند، همانطور که سیستم بر این اساس پیکربندی می‌شود.

وراثت

از: nl::Inet::EndPointBasis ارث می برد

انواع عمومی

@10 {
kState_Ready = kBasisState_Closed,
kState_Bound = 1,
kState_Listening = 2,
kState_Connecting = 3,
kState_Connected = 4,
kState_SendShutdown = 5,
kState_ReceiveShutdown = 6,
kState_Closing = 7,
kState_Closed = 8
}
enum
وضعیت دینامیکی پایه نقطه پایانی زیربنایی.
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
نوع عملکرد رسیدگی به رویداد خطای پذیرش اتصال.
OnConnectCompleteFunct )(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
نوع عملکرد مدیریت رویداد برقراری اتصال.
OnConnectionClosedFunct )(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
نوع عملکرد مدیریت رویداد برقراری اتصال.
OnConnectionReceivedFunct )(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) typedef
void(*
نوع اتصال تابع مدیریت رویداد دریافت شده است.
OnDataReceivedFunct )(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) typedef
void(*
نوع عملکرد مدیریت رویداد دریافت داده.
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) typedef
void(*
نوع عملکرد مدیریت رویداد انتقال داده.
OnPeerCloseFunct )(TCPEndPoint *endPoint) typedef
void(*
نوع عملکرد مدیریت رویداد دریافت نیمه بسته.
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) typedef
void(*
نوع TCP SendIdle عملکرد کنترل سیگنال را تغییر داد.

صفات عمومی

OnAcceptError
تابع رسیدگی به رویداد پذیرش اتصال نقطه پایانی.
OnConnectComplete
تابع مدیریت رویداد برقراری اتصال نقطه پایانی.
OnConnectionClosed
نمایندگی تابع رسیدگی به رویداد نزدیک نقطه پایانی.
OnConnectionReceived
اتصال نقطه پایانی تابع مدیریت رویداد را دریافت می کند.
OnDataReceived
تابع مدیریت رویداد دریافت متن پیام نقطه پایانی.
OnDataSent
تابع مدیریت رویداد انتقال متن پیام نقطه پایانی.
OnPeerClose
نماینده تابع مدیریت رویداد دریافت نیمه بسته نقطه پایانی.
OnTCPSendIdleChanged
وقتی بیکاری کانال ارسال اتصال TCP تغییر می کند، تابع مدیریت رویداد، سیگنالینگ نقطه پایانی را واگذار می کند.
ReceiveEnabled
bool
سوئیچ کنترلی که نشان می دهد آیا برنامه در حال دریافت داده است یا خیر.
State
enum nl::Inet::TCPEndPoint::@10
وضعیت دینامیکی پایه نقطه پایانی زیربنایی.

توابع عمومی

Abort (void)
void
نقطه پایانی را به طور کامل ببندید، به عبارت دیگر، بسته های RST را ارسال کنید.
AckReceive (uint16_t len)
دریافت متن پیام را تایید کنید.
Bind (IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
نقطه پایانی را به یک آدرس IP رابط متصل کنید.
Close (void)
بسته شدن کامل TCP را آغاز کنید، به عبارت دیگر، با ارسال و دریافت به پایان رسید.
Connect ( IPAddress addr, uint16_t port, InterfaceId intf)
اتصال TCP را راه اندازی کنید.
DisableKeepAlive (void)
گزینه TCP "keep-alive" را غیرفعال کنید.
DisableReceive (void)
void
غیرفعال کردن دریافت
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount)
گزینه TCP "keep-alive" را فعال کنید.
EnableNoDelay (void)
NoDelay را فعال کنید.
EnableReceive (void)
void
فعال کردن دریافت
Free (void)
void
بسته شدن کامل TCP را شروع کنید (یا ادامه دهید)، بدون توجه به خطاها.
GetLocalInfo ( IPAddress *retAddr, uint16_t *retPort)
آدرس IP و پورت TCP نقطه پایانی محلی را استخراج کنید.
GetPeerInfo ( IPAddress *retAddr, uint16_t *retPort) const
آدرس IP و پورت TCP نقطه پایانی راه دور را استخراج کنید.
IsConnected (void) const
bool
استخراج کنید که آیا اتصال TCP برقرار است یا خیر.
Listen (uint16_t backlog)
نقطه پایانی را برای دریافت پیام های TCP آماده کنید.
LogId (void)
uint16_t
یک شناسه برای نقطه پایانی بدست آورید.
MarkActive (void)
void
توجه به فعالیت، به عبارت دیگر، تنظیم مجدد تایمر بیکار.
PendingReceiveLength (void)
uint32_t
طول داده های دریافت ناشناس را استخراج کنید.
PendingSendLength (void)
uint32_t
طول داده در انتظار اولین ارسال را استخراج کنید.
PutBackReceivedData ( Weave::System::PacketBuffer *data)
متن پیام را به سر صف دریافت برگردانید.
Send ( Weave::System::PacketBuffer *data, bool push)
ارسال متن پیام در اتصال TCP.
SetConnectTimeout (const uint32_t connTimeoutMsecs)
void
مهلت زمانی را برای موفقیت تنظیم کنید یا خطا را برگردانید.
SetUserTimeout (uint32_t userTimeoutMillis)
گزینه TCP TCP_USER_TIMEOUT سوکت را تنظیم کنید.
Shutdown (void)
TCP نیمه بسته را شروع کنید، به عبارت دیگر، با ارسال به پایان رسید.

انواع عمومی

@10

 @10

وضعیت دینامیکی پایه نقطه پایانی زیربنایی.

اشیاء در حالت "آماده" مقداردهی اولیه می شوند، به حالت های بعدی که مربوط به ساده سازی حالت های ماشین حالت انتقال TCP است، بروید.

توجه: شمارش حالت kBasisState_Closed به دلایل سازگاری باینری تاریخی به kState_Ready نگاشت شده است. kState_Closed موجود برای شناسایی جداگانه تمایز بین "هنوز باز نشده" و "قبلاً باز شده اکنون بسته است" وجود دارد که قبلاً در حالت‌های kState_Ready و kState_Closed وجود داشت.

خواص
kState_Bound

نقطه پایان محدود شده است، اما گوش نمی دهد.

kState_Closed

نقطه پایان بسته شد، آماده انتشار است.

kState_Closing

نقطه پایانی به صورت دو طرفه بسته می شود.

kState_Connected

نقطه پایانی متصل است، برای tx/rx آماده است.

kState_Connecting

نقطه پایانی در حال تلاش برای اتصال.

kState_Listening

اتصالات دریافت نقطه پایانی

kState_Ready

نقطه پایانی اولیه شد، اما محدود نشده است.

kState_ReceiveShutdown

نقطه پایانی به نیمه بسته پاسخ داد.

kState_SendShutdown

Endpoint نیمه بسته شدن خود را آغاز کرد.

OnAcceptErrorFunct

void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)

نوع عملکرد رسیدگی به رویداد خطای پذیرش اتصال.

تابعی از این نوع را به عضو نماینده OnAcceptError برای پردازش رویدادهای خطای پذیرش اتصال در endPoint ارائه دهید. آرگومان err جزئیات خاصی در مورد نوع خطا ارائه می دهد.

جزئیات
مولفه های
[in] endPoint
نقطه پایانی TCP مرتبط با رویداد.
[in] err
دلیل خطا.

OnConnectCompleteFunct

void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)

نوع عملکرد مدیریت رویداد برقراری اتصال.

تابعی از این نوع را به عضو نماینده OnConnectComplete برای پردازش رویدادهای برقراری اتصال در endPoint ارائه دهید. استدلال err اتصالات موفق را از شکست متمایز می کند.

جزئیات
مولفه های
[in] endPoint
نقطه پایانی TCP مرتبط با رویداد.
[in] err
در صورت موفقیت INET_NO_ERROR ، کد دیگری.

OnConnectionClosedFunct

void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)

نوع عملکرد مدیریت رویداد برقراری اتصال.

تابعی از این نوع را به عضو نماینده OnConnectionClosed برای پردازش رویدادهای خاتمه اتصال در endPoint ارائه دهید. استدلال err پایان موفقیت آمیز را از شکست متمایز می کند.

جزئیات
مولفه های
[in] endPoint
نقطه پایانی TCP مرتبط با رویداد.
[in] err
در صورت موفقیت INET_NO_ERROR ، کد دیگری.

OnConnectionReceivedFunct

void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)

نوع اتصال تابع مدیریت رویداد دریافت شده است.

تابعی از این نوع را به عضو نماینده OnConnectionReceived برای پردازش رویدادهای دریافت اتصال در listeningEndPoint ارائه دهید. نقطه پایانی جدید دریافت شده conEndPoint در آدرس IP peerAddr و پورت TCP peerPort قرار دارد.

جزئیات
مولفه های
[in] listeningEndPoint
نقطه پایانی TCP گوش دادن.
[in] conEndPoint
نقطه پایانی TCP که به تازگی دریافت شده است.
[in] peerAddr
آدرس IP همتای راه دور.
[in] peerPort
پورت TCP همتای راه دور.

OnDataReceivedFunct

void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)

نوع عملکرد مدیریت رویداد دریافت داده.

تابعی از این نوع را در اختیار عضو نماینده OnDataReceived قرار دهید تا رویدادهای دریافت داده را در endPoint پردازش کند که در آن data ، متن پیام دریافتی است.

جزئیات
مولفه های
[in] endPoint
نقطه پایانی TCP مرتبط با رویداد.
[in] data
داده های دریافت شده

یک کنترل کننده رویداد دریافت داده باید داده های پردازش شده با استفاده از روش AckReceive را تأیید کند. متد Free در بافر داده نیز باید فراخوانی شود مگر اینکه به جای آن از PutBackReceivedData استفاده شود.

OnDataSentFunct

void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)

نوع عملکرد مدیریت رویداد انتقال داده.

تابعی از این نوع را به عضو نماینده OnDataSent برای پردازش رویدادهای انتقال داده در endPoint ارائه دهید که در len len طول متن پیام اضافه شده به پنجره انتقال TCP است که برای ارسال توسط پشته شبکه زیربنایی واجد شرایط هستند.

جزئیات
مولفه های
[in] endPoint
نقطه پایانی TCP مرتبط با رویداد.
[in] len
تعداد بایت های اضافه شده به پنجره انتقال.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

نوع عملکرد مدیریت رویداد دریافت نیمه بسته.

تابعی از این نوع را به عضو نماینده OnPeerClose برای پردازش رویدادهای خاتمه اتصال در endPoint ارائه دهید.

جزئیات
مولفه های
[in] endPoint
نقطه پایانی TCP مرتبط با رویداد.

OnTCPSendIdleChangedFunct

void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)

نوع TCP SendIdle عملکرد کنترل سیگنال را تغییر داد.

تابعی از این نوع را در اختیار عضو نماینده OnTCPSendIdleChanged قرار دهید تا رویداد کانال ارسال TCPEndPoint در حال تغییر حالت بین بیکار بودن و غیر فعال بودن پردازش شود.

جزئیات
مولفه های
[in] endPoint
نقطه پایانی TCP مرتبط با رویداد.
[in] isIdle
اگر کانال ارسال نقطه پایانی TCP Idle باشد صحیح است، در غیر این صورت نادرست است.

صفات عمومی

OnAcceptError

OnAcceptErrorFunct OnAcceptError

تابع رسیدگی به رویداد پذیرش اتصال نقطه پایانی.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

تابع مدیریت رویداد برقراری اتصال نقطه پایانی.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

نمایندگی تابع رسیدگی به رویداد نزدیک نقطه پایانی.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

اتصال نقطه پایانی تابع مدیریت رویداد را دریافت می کند.

OnDataReceived

OnDataReceivedFunct OnDataReceived

تابع مدیریت رویداد دریافت متن پیام نقطه پایانی.

OnDataSent

OnDataSentFunct OnDataSent

تابع مدیریت رویداد انتقال متن پیام نقطه پایانی.

OnPeerClose

OnPeerCloseFunct OnPeerClose

نماینده تابع مدیریت رویداد دریافت نیمه بسته نقطه پایانی.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

وقتی بیکاری کانال ارسال اتصال TCP تغییر می کند، تابع مدیریت رویداد، سیگنالینگ نقطه پایانی را واگذار می کند.

این توسط لایه های بالایی برای انجام اقدامات مناسب بر اساس اینکه آیا داده های ارسالی به طور قابل اعتماد به همتا تحویل داده شده است، استفاده می شود.

ReceiveEnabled

bool ReceiveEnabled

سوئیچ کنترلی که نشان می دهد آیا برنامه در حال دریافت داده است یا خیر.

حالت

enum nl::Inet::TCPEndPoint::@10 State

وضعیت دینامیکی پایه نقطه پایانی زیربنایی.

اشیاء در حالت "آماده" مقداردهی اولیه می شوند، به حالت های بعدی که مربوط به ساده سازی حالت های ماشین حالت انتقال TCP است، بروید.

توجه: شمارش حالت kBasisState_Closed به دلایل سازگاری باینری تاریخی به kState_Ready نگاشت شده است. kState_Closed موجود برای شناسایی جداگانه تمایز بین "هنوز باز نشده" و "قبلاً باز شده اکنون بسته است" وجود دارد که قبلاً در حالت‌های kState_Ready و kState_Closed وجود داشت.

توابع عمومی

سقط

void Abort(
  void
)

نقطه پایانی را به طور کامل ببندید، به عبارت دیگر، بسته های RST را ارسال کنید.

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

دریافت متن پیام را تایید کنید.

از این روش برای تأیید دریافت تمام یا بخشی از داده های دریافتی استفاده کنید. اگر len بزرگتر از کل داده های دریافتی تایید نشده باقی مانده باشد، معنای عملیاتی تعریف نشده است.

جزئیات
مولفه های
[in] len
تعداد بایت برای تایید
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: پذیرش پذیرفته شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.
INET_ERROR_CONNECTION_ABORTED
اتصال TCP دیگر باز نمی شود.

بستن

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  uint16_t port,
  bool reuseAddr
)

نقطه پایانی را به یک آدرس IP رابط متصل کنید.

نقطه پایانی را به آدرس IP رابط شبکه مشخص شده متصل می کند.

جزئیات
مولفه های
[in] addrType
نسخه پروتکل آدرس IP
[in] addr
آدرس IP (باید یک آدرس واسط باشد)
[in] port
پورت TCP
[in] reuseAddr
گزینه ای برای اشتراک گذاری اتصال با سایر نقاط پایانی
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: نقطه پایانی ملزم به آدرس است
INET_ERROR_INCORRECT_STATE
نقطه پایانی قبلاً محدود شده است
INET_NO_MEMORY
حافظه کافی برای نقطه پایانی
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType با IPVer مطابقت ندارد.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType kIPAddressType_Any است یا نوع addr برابر با addrType نیست.
other
یک خطای سیستم یا پلتفرم دیگر

در LwIP، این روش نباید با قفل پشته LwIP از قبل به دست آمده فراخوانی شود.

بستن

INET_ERROR Close(
  void
)

بسته شدن کامل TCP را آغاز کنید، به عبارت دیگر، با ارسال و دریافت به پایان رسید.

جزئیات
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: آدرس و پورت استخراج شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.
other
یک خطای سیستم یا پلتفرم دیگر

اتصال

INET_ERROR Connect(
  IPAddress addr,
  uint16_t port,
  InterfaceId intf
)

اتصال TCP را راه اندازی کنید.

 If possible, then this method initiates a TCP connection to the
 destination \c addr (with \c intf used as the scope
 identifier for IPv6 link-local destinations) and \c port.

جزئیات
مولفه های
[in] addr
آدرس IP مقصد
[in] port
پورت TCP مقصد
[in] intf
یک نشانگر اختیاری رابط شبکه
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: msg برای ارسال در صف است.
INET_ERROR_NOT_IMPLEMENTED
پیاده سازی سیستم کامل نیست
INET_ERROR_WRONG_ADDRESS_TYPE
آدرس مقصد و آدرس رابط محدود نسخه‌های پروتکل یا نوع آدرس منطبق را ندارند یا آدرس مقصد یک آدرس محلی پیوند IPv6 است و intf مشخص نشده است.
other
یک خطای سیستم یا پلتفرم دیگر

DisableKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

گزینه TCP "keep-alive" را غیرفعال کنید.

TCPEndPoint::DisableKeepAlive .

پروب های TCP keepalive را در اتصال TCP مرتبط غیرفعال کنید.

جزئیات
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: آدرس و پورت استخراج شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.
INET_ERROR_CONNECTION_ABORTED
اتصال TCP دیگر باز نمی شود.
INET_ERROR_NOT_IMPLEMENTED
پیاده سازی سیستم کامل نیست
other
یک خطای سیستم یا پلتفرم دیگر

نکته: این روش فقط زمانی قابل فراخوانی است که نقطه پایانی در یکی از حالت های متصل باشد. این روش هیچ کاری انجام نمی دهد اگر keepalives در نقطه پایانی فعال نشده باشد.

DisableReceive

void DisableReceive(
  void
)

غیرفعال کردن دریافت

همه کنترل کننده های رویداد را غیرفعال کنید. داده‌های ارسال شده به نقطه پایانی که دریافت را غیرفعال می‌کند تا زمانی که پنجره دریافت تمام نشود تأیید می‌شود.

EnableKeepAlive را فعال کنید

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

گزینه TCP "keep-alive" را فعال کنید.

TCPEndPoint::EnableKeepAlive .

شروع به انتقال خودکار قطعات پروب "keep-alive" TCP در هر interval . پس از دریافت پاسخ منفی، یا پس از ارسال بخش‌های probe timeoutCount بدون دریافت پاسخ مثبت، اتصال به‌طور خودکار قطع می‌شود.

جزئیات
مولفه های
[in] interval
زمان در ثانیه بین درخواست های کاوشگر
[in] timeoutCount
تعداد پروب هایی که باید قبل از مهلت زمانی ارسال شوند.
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: آدرس و پورت استخراج شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.
INET_ERROR_CONNECTION_ABORTED
اتصال TCP دیگر باز نمی شود.
INET_ERROR_NOT_IMPLEMENTED
پیاده سازی سیستم کامل نیست
other
یک خطای سیستم یا پلتفرم دیگر

برای جزئیات مشخصات به RFC 1122، بخش 4.2.3.6 مراجعه کنید.

پروب های TCP keepalive را در اتصال TCP مرتبط فعال کنید.

نکته: این روش فقط زمانی قابل فراخوانی است که نقطه پایانی در یکی از حالت های متصل باشد. این روش را می توان چندین بار فراخوانی کرد تا فاصله نگهداری یا تعداد دفعات زمانی را تنظیم کند.

جزئیات
مولفه های
interval
فاصله (بر حسب ثانیه) بین پروب های نگهدارنده. این مقدار همچنین زمان بین آخرین بسته داده ارسال شده و ارسال اولین پروب نگهدارنده را کنترل می کند.
timeoutCount
حداکثر تعداد پروب های تایید نشده قبل از اتصال شکست خورده تلقی می شود.

NoDelay را فعال کنید

INET_ERROR EnableNoDelay(
  void
)

NoDelay را فعال کنید.

TCPEndPoint::EnableNoDelay .

با تنظیم گزینه های سوکت TCP_NODELAY، الگوریتم بافر nagle را در TCP خاموش کنید.

EnableReceive را فعال کنید

void EnableReceive(
  void
)

فعال کردن دریافت

فعال کردن همه کنترل کننده های رویداد. داده‌های ارسال شده به نقطه پایانی که دریافت را غیرفعال می‌کند تا زمانی که پنجره دریافت تمام نشود تأیید می‌شود.

رایگان

void Free(
  void
)

بسته شدن کامل TCP را شروع کنید (یا ادامه دهید)، بدون توجه به خطاها.

شی به استخر رایگان برگردانده می شود و همه مراجع باقی مانده کاربر متعاقباً نامعتبر هستند.

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

آدرس IP و پورت TCP نقطه پایانی محلی را استخراج کنید.

از مقادیر اشاره گر NULL برای هر یک از آرگومان ها استفاده نکنید.

جزئیات
مولفه های
[out] retAddr
آدرس IP نقطه پایانی محلی
[out] retPort
پورت TCP نقطه پایانی محلی.
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: آدرس و پورت استخراج شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.
INET_ERROR_CONNECTION_ABORTED
اتصال TCP دیگر باز نمی شود.

GetPeerInfo

INET_ERROR GetPeerInfo(
  IPAddress *retAddr,
  uint16_t *retPort
) const 

آدرس IP و پورت TCP نقطه پایانی راه دور را استخراج کنید.

از مقادیر اشاره گر NULL برای هر یک از آرگومان ها استفاده نکنید.

جزئیات
مولفه های
[out] retAddr
آدرس IP نقطه پایانی راه دور.
[out] retPort
پورت TCP نقطه پایانی راه دور.
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: آدرس و پورت استخراج شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.
INET_ERROR_CONNECTION_ABORTED
اتصال TCP دیگر باز نمی شود.

وصل است

bool IsConnected(
  void
) const 

استخراج کنید که آیا اتصال TCP برقرار است یا خیر.

گوش بده

INET_ERROR Listen(
  uint16_t backlog
)

نقطه پایانی را برای دریافت پیام های TCP آماده کنید.

اگر State قبلاً kState_Listening باشد، هیچ عملیاتی انجام نمی‌شود، در غیر این صورت State روی kState_Listening تنظیم می‌شود و نقطه پایانی برای دریافت پیام‌های TCP، با توجه به معنایی پلتفرم، آماده می‌شود.

جزئیات
مولفه های
[in] backlog
حداکثر عمق صف پذیرش اتصال
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: نقطه پایانی آماده دریافت پیام است.
INET_ERROR_INCORRECT_STATE
نقطه پایانی در حال گوش دادن است.

در برخی از پلتفرم‌ها، آرگومان backlog استفاده نمی‌شود (عمق صف ثابت است؛ تنها یک اتصال ممکن است در هر زمان پذیرفته شود).

در سیستم های LwIP، این روش نباید با قفل پشته LwIP که قبلاً به دست آمده است فراخوانی شود

LogId

uint16_t LogId(
  void
)

یک شناسه برای نقطه پایانی بدست آورید.

جزئیات
برمی گرداند
یک شناسه منحصربه‌فرد غیرشفاف را برای گزارش‌های استفاده برمی‌گرداند.

MarkActive

void MarkActive(
  void
)

توجه به فعالیت، به عبارت دیگر، تنظیم مجدد تایمر بیکار.

تایمر بیکار را صفر کنید.

در انتظار دریافت طول

uint32_t PendingReceiveLength(
  void
)

طول داده های دریافت ناشناس را استخراج کنید.

جزئیات
برمی گرداند
تعداد بایت‌هایی در صف دریافت که هنوز با AckReceive(uint16_t len) تأیید نشده‌اند.

درانتظارSendLength

uint32_t PendingSendLength(
  void
)

طول داده در انتظار اولین ارسال را استخراج کنید.

جزئیات
برمی گرداند
تعداد بایت های ارسال نشده در صف ارسال.

PutBackReceivedData

INET_ERROR PutBackReceivedData(
  Weave::System::PacketBuffer *data
)

متن پیام را به سر صف دریافت برگردانید.

این روش را فقط می‌توان توسط کنترل‌کننده‌های رویداد دریافت داده فراخوانی کرد تا بخش ناشناخته‌ای از داده‌ها را در صف دریافت برگرداند. معنای عملیاتی تعریف نشده است اگر تماس گیرنده خارج از محدوده کنترل کننده رویداد دریافت داده باشد، data Weave::System::PacketBuffer ارائه شده به کنترل کننده نباشند، یا data شامل بخش تایید نشده باقیمانده پس از بایت های تایید شده توسط یک دستگاه نباشند، معنای عملیاتی تعریف نشده است. تماس قبلی با روش AckReceive(uint16_t len) .

جزئیات
مولفه های
[out] data
برای فشار دادن متن پیام دهید.
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: پذیرش پذیرفته شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.

ارسال

INET_ERROR Send(
  Weave::System::PacketBuffer *data,
  bool push
)

ارسال متن پیام در اتصال TCP.

متد Weave::System::PacketBuffer::Free بر روی آرگومان data فراخوانی می شود، صرف نظر از موفقیت یا عدم موفقیت انتقال.

جزئیات
مولفه های
[out] data
برای ارسال پیامک دهید.
[out] push
اگر true ، فورا ارسال کنید، در غیر این صورت صف.
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: آدرس و پورت استخراج شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

مهلت زمانی را برای موفقیت تنظیم کنید یا خطا را برگردانید.

جزئیات
مولفه های
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

گزینه TCP TCP_USER_TIMEOUT سوکت را تنظیم کنید.

TCPEndPoint::SetUserTimeout .

وقتی مقدار بزرگتر از 0 باشد، حداکثر زمانی را بر حسب میلی ثانیه مشخص می کند که داده های ارسالی ممکن است قبل از اینکه TCP به اجبار اتصال مربوطه را ببندد، تایید نشده باقی بماند. اگر مقدار گزینه به عنوان 0 مشخص شود، TCP از پیش فرض سیستم استفاده می کند. برای جزئیات بیشتر به RFC 5482 مراجعه کنید.

جزئیات
مولفه های
[in] userTimeoutMillis
مقدار زمان پایان کاربر Tcp بر حسب میلی ثانیه.
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: آدرس و پورت استخراج شد.
INET_ERROR_NOT_IMPLEMENTED
پیاده سازی سیستم کامل نیست
other
یک خطای سیستم یا پلتفرم دیگر

گزینه TCP timeout socket کاربر را تنظیم کنید.

وقتی مقدار بزرگتر از 0 باشد، حداکثر زمانی را بر حسب میلی ثانیه مشخص می کند که داده های ارسالی ممکن است قبل از اینکه TCP به اجبار اتصال مربوطه را ببندد، تایید نشده باقی بماند. اگر مقدار گزینه به عنوان 0 مشخص شود، TCP از پیش فرض سیستم استفاده می کند. برای جزئیات بیشتر به RFC 5482 مراجعه کنید.

نکته: این روش فقط زمانی قابل فراخوانی است که نقطه پایانی در یکی از حالت های متصل باشد. این روش را می توان چندین بار فراخوانی کرد تا فاصله نگهداری یا تعداد دفعات زمانی را تنظیم کند.

خاموش شدن

INET_ERROR Shutdown(
  void
)

TCP نیمه بسته را شروع کنید، به عبارت دیگر، با ارسال به پایان رسید.

جزئیات
ارزش های بازگشتی
INET_NO_ERROR
موفقیت: آدرس و پورت استخراج شد.
INET_ERROR_INCORRECT_STATE
اتصال TCP برقرار نشد.
other
یک خطای سیستم یا پلتفرم دیگر