Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

TCP

Modul ini mencakup fungsi yang mengontrol komunikasi TCP.

Ringkasan

Enumerasi

anonymous enum enum
Ini mendefinisikan pencacahan bendera diteruskan ke otTcpConnect () .
anonymous enum enum
Pencacahan ini mendefinisikan bendera diteruskan ke otTcpSendByReference .
otTcpDisconnectedReason enum
otTcpIncomingConnectionAction {
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT ,
OT_TCP_INCOMING_CONNECTION_ACTION_DEFER ,
OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE
}
enum
Pencacahan ini mendefinisikan tindakan koneksi masuk.

Typedefs

otLinkedBuffer typedef
Struktur buffer tertaut untuk digunakan dengan TCP.
otTcpAcceptDone )(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer) typedef
void(*
Panggilan balik ini menunjukkan bahwa koneksi TCP sekarang siap untuk komunikasi dua arah.
otTcpAcceptReady )(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto) typedef
Panggilan balik ini menunjukkan bahwa koneksi masuk yang cocok dengan pendengar TCP ini telah tiba.
otTcpBytesAcked )(otTcpEndpoint *aEndpoint, size_t aNumBytes) typedef
void(*
Callback ini menginformasikan aplikasi yang pertama aNumBytes di send buffer telah diakui oleh rekan koneksi dan memori yang mendasari mereka dapat direklamasi oleh aplikasi.
otTcpDisconnected )(otTcpEndpoint *aEndpoint, otTcpDisconnectedReason aReason) typedef
void(*
Panggilan balik ini menunjukkan bahwa koneksi terputus dan tidak boleh digunakan lagi, atau koneksi telah memasuki status TIME-WAIT.
otTcpDisconnectedReason typedef
enum otTcpDisconnectedReason
otTcpEndpoint typedef
otTcpEndpointInitializeArgs typedef
Struktur ini berisi argumen untuk otTcpEndpointInitialize () fungsi.
otTcpEstablished )(otTcpEndpoint *aEndpoint) typedef
void(*
Panggilan balik ini menginformasikan aplikasi bahwa jabat tangan 3 arah TCP telah selesai dan bahwa koneksi telah dibuat.
otTcpIncomingConnectionAction typedef
Pencacahan ini mendefinisikan tindakan koneksi masuk.
otTcpListener typedef
otTcpListenerInitializeArgs typedef
Struktur ini berisi argumen untuk otTcpListenerInitialize () fungsi.
otTcpReceiveAvailable )(otTcpEndpoint *aEndpoint, size_t aBytesAvailable, bool aEndOfStream, size_t aBytesRemaining) typedef
void(*
Panggilan balik ini menunjukkan jumlah byte yang tersedia untuk konsumsi dari buffer penerima.
otTcpSendDone )(otTcpEndpoint *aEndpoint, otLinkedBuffer *aData) typedef
void(*
Callback ini menginformasikan aplikasi yang data dalam disediakan aData telah diakui oleh rekan koneksi dan bahwa aData dan data yang berisi dapat direklamasi oleh aplikasi.
otTcpSendReady )(otTcpEndpoint *aEndpoint) typedef
void(*
Panggilan balik ini menginformasikan aplikasi bahwa jika data ditambahkan ke buffer pengiriman, sebagian akan segera dikirim tanpa penundaan, sebagai lawan antrian untuk transmisi setelah rekan ACK beberapa data.

Fungsi

otTcpAbort ( otTcpEndpoint *aEndpoint)
Mengakhiri koneksi TCP yang terkait dengan titik akhir TCP ini secara paksa.
otTcpBind ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName)
Mengikat titik akhir TCP ke alamat IP dan port.
otTcpCommitReceive ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
Menginformasikan TCP stack yang aplikasi memiliki pengolahan selesai aNumBytes byte data pada awal menerima buffer dan bahwa kebutuhan stack TCP tidak melanjutkan mempertahankan mereka byte dalam menerima penyangga.
otTcpConnect ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName, uint32_t aFlags)
Merekam host dan port jarak jauh untuk koneksi ini.
otTcpEndpointDeinitialize ( otTcpEndpoint *aEndpoint)
Deinisialisasi titik akhir TCP ini.
otTcpEndpointGetContext ( otTcpEndpoint *aEndpoint)
void *
Memperoleh pointer konteks yang terkait dengan aEndpoint pada inisialisasi.
otTcpEndpointGetInstance ( otTcpEndpoint *aEndpoint)
Memperoleh tersebut otInstance yang dikaitkan dengan aEndpoint pada inisialisasi.
otTcpEndpointInitialize ( otInstance *aInstance, otTcpEndpoint *aEndpoint, otTcpEndpointInitializeArgs *aArgs)
Menginisialisasi titik akhir TCP.
otTcpGetLocalAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
Memperoleh penunjuk ke host dan port lokal titik akhir TCP.
otTcpGetPeerAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
Memperoleh pointer ke host dan port peer titik akhir TCP.
otTcpListen ( otTcpListener *aListener, const otSockAddr *aSockName)
Menyebabkan koneksi TCP masuk yang cocok dengan alamat IP dan port yang ditentukan untuk memicu panggilan balik pendengar TCP ini.
otTcpListenerDeinitialize ( otTcpListener *aListener)
Deinisialisasi pendengar TCP ini.
otTcpListenerGetContext ( otTcpListener *aListener)
void *
Memperoleh pointer konteks yang terkait dengan aListener pada inisialisasi.
otTcpListenerGetInstance ( otTcpListener *aListener)
Memperoleh tersebut otInstance yang dikaitkan dengan aListener pada inisialisasi.
otTcpListenerInitialize ( otInstance *aInstance, otTcpListener *aListener, otTcpListenerInitializeArgs *aArgs)
Menginisialisasi pendengar TCP.
otTcpReceiveByReference (const otTcpEndpoint *aEndpoint, const otLinkedBuffer **aBuffer)
Menyediakan aplikasi dengan data referensi rantai buffer tertaut yang saat ini ada di buffer penerima TCP.
otTcpReceiveContiguify ( otTcpEndpoint *aEndpoint)
Mengatur ulang buffer penerima agar sepenuhnya bersebelahan dalam memori.
otTcpSendByExtension ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
Menambahkan data ke send penyangga dengan memperluas panjang akhir otLinkedBuffer di kirim penyangga dengan jumlah yang ditentukan.
otTcpSendByReference ( otTcpEndpoint *aEndpoint, otLinkedBuffer *aBuffer, uint32_t aFlags)
Data Menambahkan direferensikan oleh buffer terkait ditunjuk oleh aBuffer ke send penyangga.
otTcpSendEndOfStream ( otTcpEndpoint *aEndpoint)
Memberi tahu rekan koneksi bahwa titik akhir TCP ini tidak akan mengirim lebih banyak data.
otTcpStopListening ( otTcpListener *aListener)
Menyebabkan pendengar TCP ini berhenti mendengarkan koneksi masuk.

Struktur

otLinkedBuffer

Struktur buffer tertaut untuk digunakan dengan TCP.

otTcpEndpoint

Struktur ini mewakili titik akhir TCP.

otTcpEndpointInitializeArgs

Struktur ini berisi argumen untuk otTcpEndpointInitialize () fungsi.

otTcpListener

Struktur ini mewakili pendengar TCP.

otTcpListenerInitializeArgs

Struktur ini berisi argumen untuk otTcpListenerInitialize () fungsi.

Enumerasi

enum anonim

 anonymous enum

Ini mendefinisikan pencacahan bendera diteruskan ke otTcpConnect () .

enum anonim

 anonymous enum

Pencacahan ini mendefinisikan bendera diteruskan ke otTcpSendByReference .

otTcpTerputusAlasan

 otTcpDisconnectedReason

otTcpIncomingConnectionAction

 otTcpIncomingConnectionAction

Pencacahan ini mendefinisikan tindakan koneksi masuk.

Ini digunakan dalam otTcpAcceptReady () callback.

Properti
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT

Terima koneksi masuk.

OT_TCP_INCOMING_CONNECTION_ACTION_DEFER

Tunda (abaikan diam-diam) koneksi masuk.

OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE

Menolak koneksi masuk.

Typedefs

otLinkedBuffer

struct otLinkedBuffer otLinkedBuffer

Struktur buffer tertaut untuk digunakan dengan TCP.

Sebuah single otLinkedBuffer struktur referensi array byte dalam memori, melalui mData dan mLength. Bidang mNext digunakan untuk membentuk rantai otLinkedBuffer struktur.

otTcpTerimaSelesai

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

Panggilan balik ini menunjukkan bahwa koneksi TCP sekarang siap untuk komunikasi dua arah.

Dalam kasus TCP Fast Open, ini mungkin sebelum handshake koneksi TCP benar-benar selesai. Aplikasi ini dilengkapi dengan pointer konteks baik untuk pendengar TCP yang menerima koneksi dan titik akhir TCP yang diterima. Konteks yang disediakan adalah konteks yang terkait dengan pendengar TCP.

rincian
Parameter
[in] aListener
Pendengar TCP yang cocok dengan koneksi masuk.
[in] aEndpoint
Titik akhir TCP tempat koneksi masuk diterima.
[in] aPeer
host dan port dari mana koneksi masuk berasal.

otTcpTerimaSiap

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

Panggilan balik ini menunjukkan bahwa koneksi masuk yang cocok dengan pendengar TCP ini telah tiba.

Respons tipikal adalah aplikasi menerima koneksi masuk. Ia melakukannya dengan mengisi aAcceptInto dengan pointer ke otTcpEndpoint mana untuk menerima koneksi masuk. Ini otTcpEndpoint harus sudah diinisialisasi menggunakan otTcpEndpointInitialize () . Kemudian, aplikasi mengembalikan OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT.

Atau, aplikasi dapat menolak untuk menerima koneksi masuk. Ada dua cara bagi aplikasi untuk melakukan ini. Pertama, jika aplikasi mengembalikan OT_TCP_INCOMING_CONNECTION_ACTION_DEFER, maka OpenThread secara diam-diam mengabaikan permintaan pembuatan koneksi; rekan koneksi kemungkinan akan mengirim ulang permintaan, di mana panggilan balik akan dipanggil lagi. Ini berharga jika sumber daya saat ini tidak tersedia untuk menerima koneksi, tetapi mungkin tersedia saat rekan koneksi mentransmisi ulang upaya pembuatan koneksinya. Kedua, jika aplikasi mengembalikan OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE, maka OpenThread mengirimkan pesan "koneksi ditolak" ke host yang mencoba membuat koneksi. Jika aplikasi menurun koneksi masuk, itu tidak diperlukan untuk populate aAcceptInto .

rincian
Parameter
[in] aListener
Pendengar TCP yang cocok dengan koneksi masuk.
[in] aPeer
Host dan port dari mana koneksi masuk berasal.
[out] aAcceptInto
Titik akhir TCP untuk menerima koneksi masuk.
Kembali
Deskripsi cara menangani koneksi masuk.

otTcpBytesAcked

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

Callback ini menginformasikan aplikasi yang pertama aNumBytes di send buffer telah diakui oleh rekan koneksi dan memori yang mendasari mereka dapat direklamasi oleh aplikasi.

Panggilan balik ini tidak diperlukan untuk operasi TCP yang benar. Sebagian besar aplikasi bisa hanya mengandalkan otTcpSendDone () callback. Jika sebuah aplikasi menginginkan umpan balik yang halus karena memori dalam buffer pengiriman tersedia lagi (alih-alih menunggu seluruh data buffer tertaut tersedia) atau beberapa indikasi apakah koneksi membuat kemajuan maju, aplikasi dapat mendaftarkan panggilan balik ini .

rincian
Parameter
[in] aEndpoint
Titik akhir TCP untuk koneksi.
[in] aNumBytes
Jumlah byte yang baru diakui oleh rekan koneksi.

otTcpTerputus

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

Panggilan balik ini menunjukkan bahwa koneksi terputus dan tidak boleh digunakan lagi, atau koneksi telah memasuki status TIME-WAIT.

Hal ini dapat terjadi jika upaya pembentukan koneksi (diprakarsai oleh memanggil otTcpConnect () ) gagal, atau titik sesudahnya (misalnya, jika kali koneksi keluar atau segmen RST diterima dari rekan koneksi). Setelah callback ini kebakaran, semua sumber daya bahwa aplikasi yang disediakan untuk koneksi ini (yaitu, setiap otLinkedBuffers dan memori mereka referensi, tapi tidak TCP endpoint sendiri atau ruang untuk menerima buffer) dapat direklamasi. Dalam kasus koneksi memasuki status TIME-WAIT, callback ini dipanggil dua kali, sekali setelah masuk ke status TIME-WAIT (dengan OT_TCP_DISCONNECTED_REASON_TIME_WAIT, dan lagi ketika status TIME-WAIT berakhir (dengan OT_TCP_DISCONNECTED_REASON_NORMAL).

rincian
Parameter
[in] aEndpoint
Titik akhir TCP yang koneksinya terputus.
[in] aReason
Alasan mengapa koneksi terputus.

otTcpTerputusAlasan

enum otTcpDisconnectedReason otTcpDisconnectedReason

otTcpEndpoint

struct otTcpEndpoint otTcpEndpoint

otTcpEndpointInitializeArgs

struct otTcpEndpointInitializeArgs otTcpEndpointInitializeArgs

Struktur ini berisi argumen untuk otTcpEndpointInitialize () fungsi.

otTcpDidirikan

void(* otTcpEstablished)(otTcpEndpoint *aEndpoint)

Panggilan balik ini menginformasikan aplikasi bahwa jabat tangan 3 arah TCP telah selesai dan bahwa koneksi telah dibuat.

rincian
Parameter
[in] aEndpoint
Titik akhir TCP yang koneksinya sekarang dibuat.

otTcpIncomingConnectionAction

enum otTcpIncomingConnectionAction otTcpIncomingConnectionAction

Pencacahan ini mendefinisikan tindakan koneksi masuk.

Ini digunakan dalam otTcpAcceptReady () callback.

otTcpListener

struct otTcpListener otTcpListener

otTcpListenerInitializeArgs

struct otTcpListenerInitializeArgs otTcpListenerInitializeArgs

Struktur ini berisi argumen untuk otTcpListenerInitialize () fungsi.

otTcpReceiveTersedia

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

Panggilan balik ini menunjukkan jumlah byte yang tersedia untuk konsumsi dari buffer penerima.

Itu dipanggil setiap kali byte ditambahkan ke buffer penerima dan ketika akhir aliran tercapai. Jika akhir sungai telah tercapai (yaitu, jika tidak ada lebih banyak data akan tersedia untuk membaca karena koneksi peer telah menutup akhir mereka dari koneksi untuk menulis), maka aEndOfStream benar. Akhirnya, aBytesRemaining menunjukkan berapa kapasitas yang tersisa di menerima buffer untuk menyimpan data tambahan yang tiba.

rincian
Parameter
[in] aEndpoint
Titik akhir TCP untuk koneksi.
[in] aBytesAvailable
Jumlah byte dalam buffer penerima koneksi.
[in] aEndOfStream
Menunjukkan jika data tambahan, di luar apa yang sudah ada di buffer penerimaan koneksi, dapat diterima.
[in] aBytesRemaining
Jumlah byte tambahan yang dapat diterima sebelum buffer penerima menjadi penuh.

otTcpKirimSelesai

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

Callback ini menginformasikan aplikasi yang data dalam disediakan aData telah diakui oleh rekan koneksi dan bahwa aData dan data yang berisi dapat direklamasi oleh aplikasi.

The aData dijamin akan identik dengan yang lulus ke TCP melalui otTcpSendByReference () , termasuk ekstensi dilakukan melalui otTcpSendByExtension () .

rincian
Parameter
[in] aEndpoint
Titik akhir TCP untuk koneksi.
[in] aData
Sebuah pointer ke otLinkedBuffer yang dapat direklamasi.

otTcpKirimSiap

void(* otTcpSendReady)(otTcpEndpoint *aEndpoint)

Panggilan balik ini menginformasikan aplikasi bahwa jika data ditambahkan ke buffer pengiriman, sebagian akan segera dikirim tanpa penundaan, sebagai lawan antrian untuk transmisi setelah rekan ACK beberapa data.

Setelah panggilan untuk otTcpSendByReference () atau otTcpSendByExtension () , yang otTcpSendReady () callback dijamin untuk dipanggil, baik langsung (jika sambungan sudah siap) atau kadang di masa depan (setelah koneksi menjadi siap lebih banyak data).

Panggilan balik ini tidak diperlukan untuk operasi TCP yang benar. Jika lebih banyak data ditambahkan ke buffer pengiriman daripada yang dapat ditransmisikan tanpa penundaan, itu hanya akan diantrekan untuk transmisi di lain waktu. Callback ini harus digunakan hanya dalam kasus di mana beberapa jaminan diinginkan bahwa data yang ditambahkan ke buffer pengiriman akan segera dikirim (misalnya, TCP tidak akan menunggu penerima untuk ACK beberapa data lain terlebih dahulu sebelum mengirim data ini keluar). Misalnya, Anda dapat menggunakan panggilan balik ini jika Anda lebih suka data Anda dihapus daripada mengembangkan simpanan data di buffer pengiriman Anda. Tetapi untuk sebagian besar aplikasi, di mana ini bukan masalah, diharapkan seseorang tidak akan menggunakan panggilan balik ini sama sekali.

rincian
Parameter
[in] aEndpoint
Titik akhir TCP untuk koneksi.

Fungsi

otTcpAbort

otError otTcpAbort(
  otTcpEndpoint *aEndpoint
)

Mengakhiri koneksi TCP yang terkait dengan titik akhir TCP ini secara paksa.

Hal ini langsung membuat TCP endpoint gratis untuk digunakan untuk koneksi lain dan bermuara mengirim dan menerima buffer, mentransfer kepemilikan dari setiap data yang disediakan oleh aplikasi di otTcpSendByReference () panggilan kembali ke aplikasi. Callback dan memori titik akhir TCP untuk buffer penerima tetap terkait dengan titik akhir TCP.

rincian
Parameter
[in] aEndpoint
Pointer ke struktur titik akhir TCP yang mewakili titik akhir TCP untuk dibatalkan.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil membatalkan koneksi titik akhir TCP.
OT_ERROR_FAILED
Gagal membatalkan koneksi titik akhir TCP.

otTcpBind

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

Mengikat titik akhir TCP ke alamat IP dan port.

rincian
Parameter
[in] aEndpoint
Sebuah pointer ke struktur titik akhir TCP untuk mengikat.
[in] aSockName
Alamat dan port untuk mengikat titik akhir TCP ini.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil mengikat titik akhir TCP.
OT_ERROR_FAILED
Gagal mengikat titik akhir TCP.

otTcpCommitMenerima

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

Menginformasikan TCP stack yang aplikasi memiliki pengolahan selesai aNumBytes byte data pada awal menerima buffer dan bahwa kebutuhan stack TCP tidak melanjutkan mempertahankan mereka byte dalam menerima penyangga.

rincian
Parameter
[in] aEndpoint
Pointer ke struktur titik akhir TCP yang mewakili titik akhir TCP untuk menerima data.
[in] aNumBytes
Jumlah byte yang dikonsumsi.
[in] aFlags
Tandai yang menentukan opsi untuk operasi ini (belum ada).
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menyelesaikan operasi terima.
OT_ERROR_FAILED
Gagal menyelesaikan operasi penerimaan.

otTcpConnect

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

Merekam host dan port jarak jauh untuk koneksi ini.

Secara default TCP Fast Open digunakan. Ini berarti bahwa fungsi ini hanya mencatat host remote dan port, dan bahwa TCP koneksi pembentukan jabat tangan hanya terjadi pada panggilan pertama yang otTcpSendByReference () . TCP Cepat Terbuka dapat secara eksplisit dinonaktifkan menggunakan aFlags , dalam hal ini TCP koneksi pembentukan jabat tangan dimulai segera.

rincian
Parameter
[in] aEndpoint
Sebuah pointer ke struktur titik akhir TCP untuk terhubung.
[in] aSockName
Alamat IP dan port host yang akan dihubungkan.
[in] aFlags
Bendera menentukan opsi untuk operasi ini (lihat enumerasi di atas).
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menyelesaikan operasi.
OT_ERROR_FAILED
Gagal menyelesaikan operasi.

otTcpEndpointDeinitialize

otError otTcpEndpointDeinitialize(
  otTcpEndpoint *aEndpoint
)

Deinisialisasi titik akhir TCP ini.

Ini berarti bahwa OpenThread tidak lagi melacak titik akhir TCP ini dan membatalkan alokasi semua sumber daya yang telah dialokasikan secara internal untuk titik akhir TCP ini. Aplikasi dapat menggunakan kembali memori yang mendukung titik akhir TCP sesuai kebutuhan.

Jika itu sesuai dengan koneksi TCP hidup, sambungan diakhiri begitu saja (seperti dalam otTcpAbort () ). Semua sumber daya aplikasi telah disediakan untuk endpoint TCP ini (terkait buffer untuk mengirim penyangga, memori untuk menerima penyangga, yang aEndpoint struktur itu sendiri, dll) segera kembali ke aplikasi.

rincian
Parameter
[in] aEndpoint
Pointer ke struktur titik akhir TCP untuk diinisialisasi.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil mendeinisialisasi titik akhir TCP.
OT_ERROR_FAILED
Gagal mendeinisialisasi titik akhir TCP.

otTcpEndpointGetContext

void * otTcpEndpointGetContext(
  otTcpEndpoint *aEndpoint
)

Memperoleh pointer konteks yang terkait dengan aEndpoint pada inisialisasi.

rincian
Parameter
[in] aEndpoint
Titik akhir TCP yang konteksnya akan diperoleh.
Kembali
Konteks pointer terkait dengan aEndpoint .

otTcpEndpointGetInstance

otInstance * otTcpEndpointGetInstance(
  otTcpEndpoint *aEndpoint
)

Memperoleh tersebut otInstance yang dikaitkan dengan aEndpoint pada inisialisasi.

rincian
Parameter
[in] aEndpoint
Titik akhir TCP yang instance-nya akan diperoleh.
Kembali
The otInstance pointer terkait dengan aEndpoint .

otTcpEndpointInitialize

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

Menginisialisasi titik akhir TCP.

Memanggil fungsi ini menyebabkan OpenThread untuk melacak titik akhir TCP dan menyimpan dan mengambil data TCP dalam aEndpoint . Aplikasi harus menahan diri dari secara langsung mengakses atau memodifikasi bidang dalam aEndpoint . Jika aplikasi perlu untuk merebut kembali memori backing aEndpoint , itu harus memanggil otTcpEndpointDeinitialize () .

rincian
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aEndpoint
Pointer ke struktur titik akhir TCP.
[in] aArgs
Sebuah pointer ke struktur argumen.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil membuka titik akhir TCP.
OT_ERROR_FAILED
Gagal membuka titik akhir TCP.

otTcpGetLocalAddress

const otSockAddr * otTcpGetLocalAddress(
  const otTcpEndpoint *aEndpoint
)

Memperoleh penunjuk ke host dan port lokal titik akhir TCP.

Isi host dan port mungkin basi jika soket ini tidak dalam keadaan terhubung dan belum terikat setelah terakhir kali diputus.

rincian
Parameter
[in] aEndpoint
Titik akhir TCP yang host dan port lokalnya akan diperoleh.
Kembali
Host lokal dan pelabuhan aEndpoint .

otTcpGetPeerAddress

const otSockAddr * otTcpGetPeerAddress(
  const otTcpEndpoint *aEndpoint
)

Memperoleh pointer ke host dan port peer titik akhir TCP.

Isi host dan port mungkin basi jika soket ini tidak dalam keadaan terhubung.

rincian
Parameter
[in] aEndpoint
Titik akhir TCP yang host dan port peernya akan diperoleh.
Kembali
Host dan port dari rekan koneksi aEndpoint .

otTcpListen

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

Menyebabkan koneksi TCP masuk yang cocok dengan alamat IP dan port yang ditentukan untuk memicu panggilan balik pendengar TCP ini.

rincian
Parameter
[in] aListener
Sebuah pointer ke struktur pendengar TCP yang harus mulai mendengarkan.
[in] aSockName
Alamat dan port untuk mendengarkan koneksi masuk.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil memulai mendengarkan pada pendengar TCP.
OT_ERROR_FAILED
Gagal memulai mendengarkan pada pendengar TCP.

otTcpListenerDeinitialize

otError otTcpListenerDeinitialize(
  otTcpListener *aListener
)

Deinisialisasi pendengar TCP ini.

Ini berarti bahwa OpenThread tidak lagi melacak pendengar TCP ini dan membatalkan alokasi semua sumber daya yang telah dialokasikan secara internal untuk pendengar TCP ini. Aplikasi dapat menggunakan kembali memori yang mendukung pendengar TCP sesuai keinginan.

Jika pendengar TCP sedang mendengarkan, itu berhenti mendengarkan.

rincian
Parameter
[in] aListener
Sebuah pointer ke struktur pendengar TCP untuk deinisialisasi.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil mendeinisialisasi pendengar TCP.
OT_ERROR_FAILED
Gagal mendeinisialisasi pendengar TCP.

otTcpListenerGetContext

void * otTcpListenerGetContext(
  otTcpListener *aListener
)

Memperoleh pointer konteks yang terkait dengan aListener pada inisialisasi.

rincian
Parameter
[in] aListener
Pendengar TCP yang konteksnya diperoleh.
Kembali
Konteks pointer terkait dengan aListener .

otTcpListenerGetInstance

otInstance * otTcpListenerGetInstance(
  otTcpListener *aListener
)

Memperoleh tersebut otInstance yang dikaitkan dengan aListener pada inisialisasi.

rincian
Parameter
[in] aListener
Pendengar TCP yang instance-nya akan diperoleh.
Kembali
The otInstance pointer terkait dengan aListener .

otTcpListenerInitialize

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

Menginisialisasi pendengar TCP.

Memanggil fungsi ini menyebabkan OpenThread untuk melacak pendengar TCP dan menyimpan dan mengambil data TCP dalam aListener . Aplikasi harus menahan diri dari secara langsung mengakses atau memodifikasi bidang dalam aListener . Jika aplikasi perlu untuk merebut kembali dukungan memori aListener , itu harus memanggil otTcpListenerDeinitialize () .

rincian
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aListener
Pointer ke struktur pendengar TCP.
[in] aArgs
Sebuah pointer ke struktur argumen.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil membuka pendengar TCP.
OT_ERROR_FAILED
Gagal membuka pendengar TCP.

otTcpReceiveByReference

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

Menyediakan aplikasi dengan data referensi rantai buffer tertaut yang saat ini ada di buffer penerima TCP.

Rantai buffer terkait berlaku sampai dengan "menerima siap" callback selanjutnya dipanggil, atau sampai panggilan berikutnya ke otTcpReceiveContiguify () atau otTcpCommitReceive () .

rincian
Parameter
[in] aEndpoint
Pointer ke struktur titik akhir TCP yang mewakili titik akhir TCP untuk menerima data.
[out] aBuffer
Pointer ke data referensi rantai buffer tertaut yang saat ini ada di buffer penerima.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menyelesaikan operasi.
OT_ERROR_FAILED
Gagal menyelesaikan operasi.

otTcpReceiveContiguify

otError otTcpReceiveContiguify(
  otTcpEndpoint *aEndpoint
)

Mengatur ulang buffer penerima agar sepenuhnya bersebelahan dalam memori.

Ini opsional; aplikasi hanya dapat melintasi rantai buffer terkait diperoleh dengan menelepon otTcpReceiveByReference . Beberapa aplikasi mungkin ingin memanggil fungsi ini untuk membuat buffer penerima bersebelahan untuk menyederhanakan pemrosesan datanya, tetapi ini mengorbankan waktu CPU untuk mengatur ulang data di buffer penerima.

rincian
Parameter
[in] aEndpoint
Sebuah pointer ke titik akhir TCP yang menerima buffer untuk mengatur ulang.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menyelesaikan operasi.
OT_ERROR_FAILED
Gagal menyelesaikan operasi.

otTcpSendByExtension

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

Menambahkan data ke send penyangga dengan memperluas panjang akhir otLinkedBuffer di kirim penyangga dengan jumlah yang ditentukan.

Jika buffer kirim kosong, maka operasi gagal.

rincian
Parameter
[in] aEndpoint
Pointer ke struktur titik akhir TCP yang mewakili titik akhir TCP untuk mengirim data.
[in] aNumBytes
Jumlah byte yang digunakan untuk memperpanjang panjang buffer tertaut akhir.
[in] aFlags
Bendera menentukan opsi untuk operasi ini (lihat enumerasi di atas).
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menambahkan data ke buffer pengiriman.
OT_ERROR_FAILED
Gagal menambahkan data ke buffer pengiriman.

otTcpSendByReference

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

Data Menambahkan direferensikan oleh buffer terkait ditunjuk oleh aBuffer ke send penyangga.

Setelah panggilan berhasil ke fungsi ini, buffer tertaut dan data yang dirujuknya dimiliki oleh tumpukan TCP; mereka tidak boleh dimodifikasi oleh aplikasi sampai panggilan balik "kirim selesai" mengembalikan kepemilikan objek tersebut ke aplikasi. Pemanggilan fungsi ini dapat diterima untuk menambahkan buffer lain yang ditautkan ke antrean pengiriman, meskipun panggilan balik "kirim selesai" untuk pemanggilan fungsi ini sebelumnya belum diaktifkan.

Perhatikan bahwa aBuffer tidak harus dirantai; bidang mNext-nya harus NULL. Jika data tambahan akan ditambahkan tepat setelah panggilan ini, maka tanda OT_TCP_SEND_MORE_TO_COME harus digunakan sebagai petunjuk untuk implementasi TCP.

rincian
Parameter
[in] aEndpoint
Pointer ke struktur titik akhir TCP yang mewakili titik akhir TCP untuk mengirim data.
[in] aBuffer
Pointer ke data referensi rantai buffer tertaut untuk ditambahkan ke buffer pengiriman.
[in] aFlags
Bendera menentukan opsi untuk operasi ini (lihat enumerasi di atas).
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil menambahkan data ke buffer pengiriman.
OT_ERROR_FAILED
Gagal menambahkan data ke buffer pengiriman.

otTcpSendEndOfStream

otError otTcpSendEndOfStream(
  otTcpEndpoint *aEndpoint
)

Memberi tahu rekan koneksi bahwa titik akhir TCP ini tidak akan mengirim lebih banyak data.

Ini harus digunakan ketika aplikasi tidak memiliki data lagi untuk dikirim ke rekan koneksi. Untuk koneksi ini, pembacaan berikutnya pada rekan koneksi akan menghasilkan kondisi "akhir aliran", dan penulisan berikutnya pada titik akhir koneksi ini akan gagal.

Kondisi "akhir aliran" hanya berlaku setelah data apa pun yang sebelumnya diberikan ke tumpukan TCP untuk dikirim telah diterima oleh rekan koneksi.

rincian
Parameter
[in] aEndpoint
Pointer ke struktur titik akhir TCP yang mewakili titik akhir TCP untuk dimatikan.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil mengantri kondisi "akhir aliran" untuk transmisi.
OT_ERROR_FAILED
Gagal mengantri kondisi "akhir aliran" untuk transmisi.

otTcpStopListening

otError otTcpStopListening(
  otTcpListener *aListener
)

Menyebabkan pendengar TCP ini berhenti mendengarkan koneksi masuk.

rincian
Parameter
[in] aListener
Sebuah pointer ke struktur pendengar TCP yang harus berhenti mendengarkan.
Mengembalikan Nilai
OT_ERROR_NONE
Berhasil berhenti mendengarkan pada pendengar TCP.
OT_ERROR_FAILED
Gagal berhenti mendengarkan pada pendengar TCP.

makro

OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS 2599

Ukuran buffer yang direkomendasikan untuk koneksi TCP yang melintasi sekitar 3 hop nirkabel atau kurang.

Pada platform di mana memori sangat terbatas dan dalam situasi di mana bandwidth tinggi tidak diperlukan, mungkin diinginkan untuk secara manual memilih ukuran buffer yang lebih kecil.

OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS 4158

Ukuran buffer yang direkomendasikan untuk koneksi TCP yang melintasi banyak hop nirkabel.

Jika koneksi TCP melintasi sejumlah besar hop (lebih dari 6 atau lebih), maka mungkin disarankan untuk memilih ukuran buffer yang besar secara manual.