nl:: Inet:: TCPEndPoint
#include <src/inet/TCPEndPoint.h>
Objek dari class ini mewakili endpoint transpor TCP.
Ringkasan
Nest Inet Layer mengenkapsulasi metode untuk berinteraksi dengan endpoint transpor TCP (soket SOCK_STREAM di sistem yang berasal dari Linux dan BSD) atau blok kontrol protokol TCP LwIP, karena sistem telah dikonfigurasi dengan sesuai.
Inheritance
Mewarisi dari: nl::Inet::EndPointBasis
Jenis publik |
|
---|---|
@10{
|
enum Status dinamis dasar endpoint yang mendasari. |
OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)
|
typedefvoid(*
Jenis fungsi penanganan peristiwa error penerimaan koneksi. |
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)
|
typedefvoid(*
Jenis fungsi penanganan peristiwa pembuatan koneksi. |
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
|
typedefvoid(*
Jenis fungsi penanganan peristiwa pembuatan koneksi. |
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)
|
typedefvoid(*
Jenis koneksi yang diterima fungsi penanganan peristiwa. |
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)
|
typedefvoid(*
Jenis fungsi penanganan peristiwa penerimaan data. |
OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
|
typedefvoid(*
Jenis fungsi penanganan peristiwa transmisi data. |
OnPeerCloseFunct)(TCPEndPoint *endPoint)
|
typedefvoid(*
Jenis fungsi penanganan peristiwa penerimaan setengah tertutup. |
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)
|
typedefvoid(*
Jenis TCP SendIdle mengubah fungsi penanganan sinyal. |
Atribut publik |
|
---|---|
OnAcceptError
|
Delegasi fungsi penanganan peristiwa penerimaan koneksi endpoint.
|
OnConnectComplete
|
Delegasi fungsi penanganan peristiwa pembentukan koneksi endpoint.
|
OnConnectionClosed
|
Delegasi fungsi penanganan peristiwa tutup endpoint.
|
OnConnectionReceived
|
Koneksi endpoint menerima delegasi fungsi penanganan peristiwa.
|
OnDataReceived
|
Delegasi fungsi penanganan peristiwa penerimaan teks pesan endpoint.
|
OnDataSent
|
Delegasi fungsi penanganan peristiwa transmisi teks pesan endpoint.
|
OnPeerClose
|
Delegasi fungsi penanganan peristiwa penerimaan half-close endpoint.
|
OnTCPSendIdleChanged
|
Delegasi fungsi penanganan peristiwa dari pensinyalan endpoint saat kondisi tidak ada aktivitas koneksi TCP berubah.
|
ReceiveEnabled
|
bool
Tombol kontrol yang menunjukkan apakah aplikasi menerima data.
|
State
|
enum nl::Inet::TCPEndPoint::@10
Status dinamis dasar endpoint yang mendasari.
|
Fungsi publik |
|
---|---|
Abort(void)
|
void
Menutup endpoint secara dibatalkan, dengan kata lain, mengirim paket RST.
|
AckReceive(uint16_t len)
|
Konfirmasi penerimaan teks pesan.
|
Bind(IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
|
Ikat endpoint ke alamat IP antarmuka.
|
Close(void)
|
Memulai TCP sepenuhnya, dengan kata lain, diselesaikan dengan mengirim dan menerima.
|
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
|
Memulai koneksi TCP.
|
DisableKeepAlive(void)
|
Menonaktifkan opsi "keep-alive" TCP.
|
DisableReceive(void)
|
void
Nonaktifkan penerimaan sinyal.
|
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
|
Mengaktifkan opsi "keep-alive" TCP.
|
EnableNoDelay(void)
|
EnableNoDelay.
|
EnableReceive(void)
|
void
Aktifkan penerimaan.
|
Free(void)
|
void
Memulai (atau melanjutkan) TCP sepenuhnya, mengabaikan kesalahan.
|
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
|
Mengekstrak alamat IP dan port TCP endpoint lokal.
|
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
|
Mengekstrak alamat IP dan port TCP endpoint jarak jauh.
|
IsConnected(void) const
|
bool
Ekstrak apakah koneksi TCP tersambung.
|
Listen(uint16_t backlog)
|
Menyiapkan endpoint untuk menerima pesan TCP.
|
LogId(void)
|
uint16_t
Dapatkan ID untuk endpoint.
|
MarkActive(void)
|
void
Mencatat aktivitas, dengan kata lain, mereset timer yang tidak ada aktivitas.
|
PendingReceiveLength(void)
|
uint32_t
Ekstrak panjang data penerimaan yang tidak dikonfirmasi.
|
PendingSendLength(void)
|
uint32_t
Mengekstrak durasi data yang menunggu pengiriman pertama.
|
PutBackReceivedData(Weave::System::PacketBuffer *data)
|
Mendorong teks pesan kembali ke kepala antrean penerimaan.
|
Send(Weave::System::PacketBuffer *data, bool push)
|
Mengirim teks pesan di koneksi TCP.
|
SetConnectTimeout(const uint32_t connTimeoutMsecs)
|
void
Setel waktu tunggu agar Connect berhasil atau menampilkan error.
|
SetUserTimeout(uint32_t userTimeoutMillis)
|
Setel opsi soket TCP TCP_USER_TIMEOUT.
|
Shutdown(void)
|
Memulai TCP setengah, dengan kata lain, selesai dengan pengiriman.
|
Jenis publik
@10
@10
Status dinamis dasar endpoint yang mendasari.
Objek diinisialisasi dalam status "siap", lanjutkan ke status berikutnya yang sesuai dengan penyederhanaan status mesin status transpor TCP.
Catatan:Enumerasi status kBasisState_Closed
dipetakan ke kState_Ready
untuk alasan kompatibilitas biner historis. kState_Closed
yang ada ada untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "sebelumnya dibuka sekarang ditutup" yang ada sebelumnya dalam status kState_Ready
dan kState_Closed
.
Properti | |
---|---|
kState_Bound
|
Endpoint terikat, tetapi tidak merespons. |
kState_Closed
|
Endpoint ditutup, siap dirilis. |
kState_Closing
|
Endpoint ditutup secara dua arah. |
kState_Connected
|
Endpoint terhubung, siap untuk tx/rx. |
kState_Connecting
|
Endpoint mencoba terhubung. |
kState_Listening
|
Endpoint yang menerima koneksi. |
kState_Ready
|
Endpoint diinisialisasi, tetapi tidak terikat. |
kState_ReceiveShutdown
|
Endpoint merespons half-close. |
kState_SendShutdown
|
Endpoint memulai setengah penutupan. |
OnAcceptErrorFunct
void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Jenis fungsi penanganan peristiwa error penerimaan koneksi.
Berikan fungsi jenis ini kepada anggota delegasi OnAcceptError
untuk memproses peristiwa error penerimaan koneksi di endPoint
. Argumen err
memberikan detail spesifik tentang jenis error.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
OnConnectCompleteFunct
void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Jenis fungsi penanganan peristiwa pembuatan koneksi.
Berikan fungsi jenis ini kepada anggota delegasi OnConnectComplete
untuk memproses peristiwa pembuatan koneksi di endPoint
. Argumen err
membedakan koneksi yang berhasil dari koneksi yang gagal.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
OnConnectionClosedFunct
void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Jenis fungsi penanganan peristiwa pembuatan koneksi.
Berikan fungsi jenis ini kepada anggota delegasi OnConnectionClosed
untuk memproses peristiwa penghentian koneksi di endPoint
. Argumen err
membedakan penghentian yang berhasil dengan kegagalan.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
OnConnectionReceivedFunct
void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)
Jenis koneksi yang diterima fungsi penanganan peristiwa.
Sediakan fungsi jenis ini kepada anggota delegasi OnConnectionReceived
untuk memproses peristiwa penerimaan koneksi di listeningEndPoint
. Endpoint conEndPoint
yang baru diterima berada di alamat IP peerAddr
dan port TCP peerPort
.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
OnDataReceivedFunct
void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)
Jenis fungsi penanganan peristiwa penerimaan data.
Sediakan fungsi jenis ini kepada anggota delegasi OnDataReceived
untuk memproses peristiwa penerimaan data di endPoint
dengan data
sebagai teks pesan yang diterima.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Pengendali peristiwa penerimaan data harus mengonfirmasi data yang diproses menggunakan metode AckReceive
. Metode Free
pada buffering data juga harus dipanggil kecuali jika PutBackReceivedData
digunakan sebagai gantinya.
OnDataSentFunct
void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
Jenis fungsi penanganan peristiwa transmisi data.
Sediakan fungsi jenis ini kepada anggota delegasi OnDataSent
untuk memproses peristiwa transmisi data di endPoint
dengan len
adalah panjang teks pesan yang ditambahkan ke jendela transmisi TCP, yang memenuhi syarat untuk dikirim oleh stack jaringan dasar.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
OnPeerCloseFunct
void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)
Jenis fungsi penanganan peristiwa penerimaan setengah tertutup.
Berikan fungsi jenis ini kepada anggota delegasi OnPeerClose
untuk memproses peristiwa penghentian koneksi di endPoint
.
Detail | |||
---|---|---|---|
Parameter |
|
OnTCPSendIdleChangedFunct
void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)
Jenis TCP SendIdle mengubah fungsi penanganan sinyal.
Berikan fungsi jenis ini kepada anggota delegasi OnTCPSendIdleChanged
untuk memproses peristiwa saluran kirim TCPEndPoint yang mengubah status antara tidak ada aktivitas dan bukan tidak ada aktivitas.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Atribut publik
OnAcceptError
OnAcceptErrorFunct OnAcceptError
Delegasi fungsi penanganan peristiwa penerimaan koneksi endpoint.
OnConnectComplete
OnConnectCompleteFunct OnConnectComplete
Delegasi fungsi penanganan peristiwa pembentukan koneksi endpoint.
OnConnectionClosed
OnConnectionClosedFunct OnConnectionClosed
Delegasi fungsi penanganan peristiwa tutup endpoint.
OnConnectionReceived
OnConnectionReceivedFunct OnConnectionReceived
Koneksi endpoint menerima delegasi fungsi penanganan peristiwa.
OnDataReceived
OnDataReceivedFunct OnDataReceived
Delegasi fungsi penanganan peristiwa penerimaan teks pesan endpoint.
OnDataSent
OnDataSentFunct OnDataSent
Delegasi fungsi penanganan peristiwa transmisi teks pesan endpoint.
OnPeerClose
OnPeerCloseFunct OnPeerClose
Delegasi fungsi penanganan peristiwa penerimaan half-close endpoint.
OnTCPSendIdleChanged
OnTCPSendIdleChangedFunct OnTCPSendIdleChanged
Delegasi fungsi penanganan peristiwa dari pensinyalan endpoint saat kondisi tidak ada aktivitas koneksi TCP berubah.
Hal ini digunakan oleh lapisan atas untuk mengambil tindakan yang tepat berdasarkan apakah data yang dikirim telah dikirimkan dengan andal ke rekan.
ReceiveEnabled
bool ReceiveEnabled
Tombol kontrol yang menunjukkan apakah aplikasi menerima data.
Negara Bagian
enum nl::Inet::TCPEndPoint::@10 State
Status dinamis dasar endpoint yang mendasari.
Objek diinisialisasi dalam status "siap", lanjutkan ke status berikutnya yang sesuai dengan penyederhanaan status mesin status transpor TCP.
Catatan:Enumerasi status kBasisState_Closed
dipetakan ke kState_Ready
untuk alasan kompatibilitas biner historis. kState_Closed
yang ada ada untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "sebelumnya dibuka sekarang ditutup" yang ada sebelumnya dalam status kState_Ready
dan kState_Closed
.
Fungsi publik
Batalkan
void Abort( void )
Menutup endpoint secara dibatalkan, dengan kata lain, mengirim paket RST.
AckReceive
INET_ERROR AckReceive( uint16_t len )
Konfirmasi penerimaan teks pesan.
Gunakan metode ini untuk mengonfirmasi penerimaan semua atau sebagian data yang diterima. Semantik operasional tidak ditentukan jika len
lebih besar dari total data yang belum dikonfirmasi dan belum diterima.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
Ikat
INET_ERROR Bind( IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr )
Ikat endpoint ke alamat IP antarmuka.
Mengikat endpoint ke alamat IP antarmuka jaringan yang ditentukan.
Detail | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||
Nilai Pengembalian |
|
Di LwIP, metode ini tidak boleh dipanggil dengan kunci stack LwIP yang sudah diperoleh.
Tutup
INET_ERROR Close( void )
Memulai TCP sepenuhnya, dengan kata lain, diselesaikan dengan mengirim dan menerima.
Detail | |||||||
---|---|---|---|---|---|---|---|
Nilai Pengembalian |
|
Konektivitas
INET_ERROR Connect( IPAddress addr, uint16_t port, InterfaceId intf )
Memulai koneksi 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.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai Pengembalian |
|
DisableKeepAlive
INET_ERROR DisableKeepAlive( void )
Menonaktifkan opsi "keep-alive" TCP.
TCPEndPoint::DisableKeepAlive.
Nonaktifkan pemeriksaan keepalive TCP pada koneksi TCP terkait.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Nilai Pengembalian |
|
Catatan:Metode ini hanya dapat dipanggil jika endpoint berada dalam salah satu status yang terhubung. Metode ini tidak melakukan apa pun jika keepalive belum diaktifkan di endpoint.
DisableReceive
void DisableReceive( void )
Nonaktifkan penerimaan sinyal.
Menonaktifkan semua pengendali peristiwa. Data yang dikirim ke endpoint yang menonaktifkan penerimaan akan dikonfirmasi hingga jendela penerimaan habis.
EnableKeepAlive
INET_ERROR EnableKeepAlive( uint16_t interval, uint16_t timeoutCount )
Mengaktifkan opsi "keep-alive" TCP.
Mulai transmisi segmen pemeriksaan "keep-alive" TCP secara otomatis setiap interval
detik. Koneksi akan dibatalkan secara otomatis setelah menerima respons negatif, atau setelah mengirimkan segmen pemeriksaan timeoutCount
tanpa menerima respons positif.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Nilai Pengembalian |
|
Lihat RFC 1122, bagian 4.2.3.6 untuk rincian spesifikasi.
Mengaktifkan pemeriksaan TCP keepalive pada koneksi TCP terkait.
Catatan:Metode ini hanya dapat dipanggil jika endpoint berada dalam salah satu status yang terhubung. Metode ini dapat dipanggil beberapa kali untuk menyesuaikan interval keepalive atau jumlah waktu tunggu.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
EnableNoDelay
INET_ERROR EnableNoDelay( void )
EnableNoDelay.
Nonaktifkan algoritme buffering nagle di TCP dengan menyetel opsi soket TCP_NONO.
EnableReceive
void EnableReceive( void )
Aktifkan penerimaan.
Mengaktifkan semua pengendali peristiwa. Data yang dikirim ke endpoint yang menonaktifkan penerimaan akan dikonfirmasi hingga jendela penerimaan habis.
Gratis
void Free( void )
Memulai (atau melanjutkan) TCP sepenuhnya, mengabaikan kesalahan.
Objek dikembalikan ke kumpulan gratis, dan semua referensi pengguna yang tersisa kemudian menjadi tidak valid.
GetLocalInfo
INET_ERROR GetLocalInfo( IPAddress *retAddr, uint16_t *retPort )
Mengekstrak alamat IP dan port TCP endpoint lokal.
Jangan gunakan nilai pointer NULL
untuk kedua argumen.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
GetPeerInfo
INET_ERROR GetPeerInfo( IPAddress *retAddr, uint16_t *retPort ) const
Mengekstrak alamat IP dan port TCP endpoint jarak jauh.
Jangan gunakan nilai pointer NULL
untuk kedua argumen.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
IsConnected
bool IsConnected( void ) const
Ekstrak apakah koneksi TCP tersambung.
Dengarkan
INET_ERROR Listen( uint16_t backlog )
Menyiapkan endpoint untuk menerima pesan TCP.
Jika State
sudah kState_Listening
, tidak ada operasi yang akan dilakukan. Jika tidak, State
akan disetel ke kState_Listening
dan endpoint disiapkan untuk menerima pesan TCP, sesuai dengan semantik platform.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
Pada beberapa platform, argumen backlog
tidak digunakan (kedalaman antrean bersifat tetap; hanya satu koneksi yang dapat diterima pada satu waktu).
Pada sistem LwIP, metode ini tidak boleh dipanggil dengan kunci tumpukan LwIP yang sudah diperoleh
LogId
uint16_t LogId( void )
Dapatkan ID untuk endpoint.
Detail | |
---|---|
Hasil |
Menampilkan ID unik buram untuk log penggunaan.
|
MarkActive
void MarkActive( void )
Mencatat aktivitas, dengan kata lain, mereset timer yang tidak ada aktivitas.
Reset timer tidak ada aktivitas ke nol.
PendingReceiveLength
uint32_t PendingReceiveLength( void )
Ekstrak panjang data penerimaan yang tidak dikonfirmasi.
Detail | |
---|---|
Hasil |
Jumlah byte dalam antrean penerimaan yang belum dikonfirmasi dengan
AckReceive(uint16_t len) . |
PendingSendLength
uint32_t PendingSendLength( void )
Mengekstrak durasi data yang menunggu pengiriman pertama.
Detail | |
---|---|
Hasil |
Jumlah byte yang tidak ditransmisikan dalam antrean transmisi.
|
PutBackReceivedData
INET_ERROR PutBackReceivedData( Weave::System::PacketBuffer *data )
Mendorong teks pesan kembali ke kepala antrean penerimaan.
Metode ini hanya dapat dipanggil oleh pengendali peristiwa penerimaan data untuk menempatkan kembali bagian data yang tidak dikonfirmasi pada antrean penerimaan. Semantik operasional tidak ditentukan jika pemanggil berada di luar cakupan pengendali peristiwa penerimaan data, data
bukan Weave::System::PacketBuffer
yang diberikan untuk pengendali, atau data
tidak berisi bagian yang tidak dikonfirmasi yang tersisa setelah byte yang dikonfirmasi oleh panggilan sebelumnya ke metode AckReceive(uint16_t len)
.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
Kirim
INET_ERROR Send( Weave::System::PacketBuffer *data, bool push )
Mengirim teks pesan di koneksi TCP.
Metode Weave::System::PacketBuffer::Free
dipanggil pada argumen data
terlepas dari apakah transmisi berhasil atau gagal.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai Pengembalian |
|
SetConnectTimeout
void SetConnectTimeout( const uint32_t connTimeoutMsecs )
Setel waktu tunggu agar Connect berhasil atau menampilkan error.
Detail | |||
---|---|---|---|
Parameter |
|
SetUserTimeout
INET_ERROR SetUserTimeout( uint32_t userTimeoutMillis )
Setel opsi soket TCP TCP_USER_TIMEOUT.
Ketika nilainya lebih besar dari 0, nilai ini akan menentukan jumlah waktu maksimum dalam milidetik saat data yang dikirim mungkin tetap tidak dikonfirmasi sebelum TCP akan menutup koneksi terkait secara paksa. Jika nilai opsi ditetapkan sebagai 0, TCP akan menggunakan default sistem. Lihat RFC 5482 untuk detail lebih lanjut.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai Pengembalian |
|
Menyetel opsi soket waktu tunggu pengguna TCP.
Ketika nilainya lebih besar dari 0, nilai ini akan menentukan jumlah waktu maksimum dalam milidetik saat data yang dikirim mungkin tetap tidak dikonfirmasi sebelum TCP akan menutup koneksi terkait secara paksa. Jika nilai opsi ditetapkan sebagai 0, TCP akan menggunakan default sistem. Lihat RFC 5482 untuk detail lebih lanjut.
Catatan:Metode ini hanya dapat dipanggil jika endpoint berada dalam salah satu status yang terhubung. Metode ini dapat dipanggil beberapa kali untuk menyesuaikan interval keepalive atau jumlah waktu tunggu.
Nonaktif
INET_ERROR Shutdown( void )
Memulai TCP setengah, dengan kata lain, selesai dengan pengiriman.
Detail | |||||||
---|---|---|---|---|---|---|---|
Nilai Pengembalian |
|