nl:: Internet:: TCPEndPoint
#include <src/inet/TCPEndPoint.h>
Objek kelas ini mewakili titik akhir transport TCP.
Ringkasan
Nest Inet Layer merangkum metode untuk berinteraksi dengan titik akhir transport TCP (soket SOCK_STREAM pada sistem turunan Linux dan BSD) atau blok kontrol protokol TCP LwIP, karena sistem dikonfigurasikan dengan tepat.
Warisan
Mewarisi dari: nl :: Inet :: EndPointBasisTipe publik | |
---|---|
@10 { | enum Keadaan dinamis dasar dari titik akhir yang mendasarinya. |
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Jenis fungsi penanganan peristiwa kesalahan penerimaan koneksi. |
OnConnectCompleteFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Jenis fungsi penanganan acara pembentukan koneksi. |
OnConnectionClosedFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Jenis fungsi penanganan acara pembentukan koneksi. |
OnConnectionReceivedFunct )(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) | typedefvoid(* Jenis koneksi menerima fungsi penanganan acara. |
OnDataReceivedFunct )(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) | typedefvoid(* Jenis fungsi penanganan acara penerimaan data. |
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) | typedefvoid(* Jenis fungsi penanganan peristiwa transmisi data. |
OnPeerCloseFunct )(TCPEndPoint *endPoint) | typedefvoid(* Jenis fungsi penanganan acara penerimaan setengah tertutup. |
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) | typedefvoid(* Jenis TCP SendIdle mengubah fungsi penanganan sinyal. |
Atribut publik | |
---|---|
OnAcceptError | Delegasi fungsi penanganan acara penerimaan koneksi titik akhir. |
OnConnectComplete | Delegasi fungsi penanganan peristiwa pembentukan koneksi titik akhir. |
OnConnectionClosed | Delegasi fungsi penanganan acara dekat titik akhir. |
OnConnectionReceived | Koneksi titik akhir menerima delegasi fungsi penanganan acara. |
OnDataReceived | Delegasi fungsi penanganan acara penerimaan teks pesan titik akhir. |
OnDataSent | Delegasi fungsi penanganan peristiwa transmisi teks pesan titik akhir. |
OnPeerClose | Delegasi fungsi penanganan acara penerimaan setengah tutup titik akhir. |
OnTCPSendIdleChanged | Delegasi fungsi penanganan peristiwa dari pensinyalan titik akhir ketika kemalasan dari saluran pengiriman koneksi TCP berubah. |
ReceiveEnabled | bool Sakelar kontrol yang menunjukkan apakah aplikasi menerima data. |
State | enum nl::Inet::TCPEndPoint::@10 Keadaan dinamis dasar dari titik akhir yang mendasarinya. |
Fungsi publik | |
---|---|
Abort (void) | void Tutup titik akhir secara gagal, dengan kata lain, kirim paket RST. |
AckReceive (uint16_t len) | Mengakui penerimaan teks pesan. |
Bind (IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr) | Ikat titik akhir ke alamat IP antarmuka. |
Close (void) | Memulai TCP full close, dengan kata lain, selesai dengan mengirim dan menerima. |
Connect ( IPAddress addr, uint16_t port, InterfaceId intf) | Memulai koneksi TCP. |
DisableKeepAlive (void) | Nonaktifkan opsi TCP "tetap hidup". |
DisableReceive (void) | void Nonaktifkan penerimaan. |
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount) | Aktifkan opsi TCP "tetap hidup". |
EnableNoDelay (void) | AktifkanTanpa Penundaan. |
EnableReceive (void) | void Aktifkan penerimaan. |
Free (void) | void Memulai (atau melanjutkan) penutupan penuh TCP, mengabaikan kesalahan. |
GetLocalInfo ( IPAddress *retAddr, uint16_t *retPort) | Ekstrak alamat IP dan port TCP dari titik akhir lokal. |
GetPeerInfo ( IPAddress *retAddr, uint16_t *retPort) const | Ekstrak alamat IP dan port TCP dari titik akhir jarak jauh. |
IsConnected (void) const | bool Ekstrak apakah koneksi TCP dibuat. |
Listen (uint16_t backlog) | Siapkan titik akhir untuk menerima pesan TCP. |
LogId (void) | uint16_t Dapatkan pengidentifikasi untuk titik akhir. |
MarkActive (void) | void Catat aktivitasnya, dengan kata lain, reset timer idle. |
PendingReceiveLength (void) | uint32_t Ekstrak panjang data penerimaan yang tidak diakui. |
PendingSendLength (void) | uint32_t Ekstrak panjang data yang menunggu pengiriman pertama. |
PutBackReceivedData ( Weave::System::PacketBuffer *data) | Dorong teks pesan kembali ke kepala antrian terima. |
Send ( Weave::System::PacketBuffer *data, bool push) | Kirim teks pesan pada koneksi TCP. |
SetConnectTimeout (const uint32_t connTimeoutMsecs) | void Setel batas waktu untuk Connect agar berhasil atau mengembalikan kesalahan. |
SetUserTimeout (uint32_t userTimeoutMillis) | Setel opsi soket TCP TCP_USER_TIMEOUT. |
Shutdown (void) | Memulai TCP setengah dekat, dengan kata lain, selesai dengan pengiriman. |
Tipe publik
@10
@10
Keadaan dinamis dasar dari titik akhir yang mendasarinya.
Objek diinisialisasi dalam status "siap", lanjutkan ke status berikutnya yang sesuai dengan penyederhanaan status mesin status transport TCP.
Catatan: kBasisState_Closed
pencacahan negara dipetakan ke kState_Ready
untuk alasan biner-kompatibilitas sejarah. Yang ada kState_Closed
ada untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "yang sebelumnya dibuka sekarang ditutup" yang ada sebelumnya di kState_Ready
dan kState_Closed
negara.
OnAcceptErrorFunct
void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Jenis fungsi penanganan peristiwa kesalahan penerimaan koneksi.
Memberikan fungsi jenis ini ke OnAcceptError
anggota delegasi untuk koneksi kesalahan proses penerimaan acara di endPoint
. The err
Argumen memberikan rincian spesifik tentang jenis kesalahan.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
AktifTerhubungSelesaiFungsi
void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Jenis fungsi penanganan acara pembentukan koneksi.
Memberikan fungsi jenis ini ke OnConnectComplete
anggota delegasi untuk memproses peristiwa pembentukan koneksi pada endPoint
. The err
Argumen membedakan koneksi sukses dari kegagalan.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
PadaKoneksiTertutupFungsi
void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Jenis fungsi penanganan acara pembentukan koneksi.
Memberikan fungsi jenis ini ke OnConnectionClosed
anggota delegasi untuk koneksi proses kejadian terminasi endPoint
. The err
Argumen membedakan pengakhiran sukses dari kegagalan.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
PadaKoneksiDiterimaFungsi
void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)
Jenis koneksi menerima fungsi penanganan acara.
Memberikan fungsi jenis ini ke OnConnectionReceived
anggota delegasi untuk acara resepsi koneksi proses pada listeningEndPoint
. Titik akhir yang baru diterima conEndPoint
terletak di alamat IP peerAddr
dan TCP port peerPort
.
rincian | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
DiDataDiterimaFungsi
void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)
Jenis fungsi penanganan acara penerimaan data.
Memberikan fungsi jenis ini ke OnDataReceived
anggota delegasi untuk proses acara resepsi data pada endPoint
di mana data
adalah teks pesan yang diterima.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
Penerimaan data event handler harus mengakui data yang diolah dengan menggunakan AckReceive
metode. The Free
metode pada buffer data juga harus dipanggil kecuali PutBackReceivedData
digunakan sebagai gantinya.
PadaDataTerkirimFungsi
void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
Jenis fungsi penanganan peristiwa transmisi data.
Memberikan fungsi jenis ini ke OnDataSent
anggota delegasi untuk proses kejadian transmisi data pada endPoint
di mana len
adalah panjang teks pesan ditambahkan ke jendela mengirimkan TCP, yang memenuhi syarat untuk mengirimkan oleh tumpukan jaringan yang mendasarinya.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
OnPeerCloseFunct
void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)
Jenis fungsi penanganan acara penerimaan setengah tertutup.
Memberikan fungsi jenis ini ke OnPeerClose
anggota delegasi untuk memproses peristiwa koneksi terminasi endPoint
.
rincian | |||
---|---|---|---|
Parameter |
|
DiTCPSendIdleChangedFunct
void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)
Jenis TCP SendIdle mengubah fungsi penanganan sinyal.
Memberikan fungsi jenis ini ke OnTCPSendIdleChanged
anggota delegasi untuk memproses peristiwa saluran send dari TCPEndPoint mengubah negara antara menganggur dan tidak menganggur.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
Atribut publik
OnAcceptError
OnAcceptErrorFunct OnAcceptError
Delegasi fungsi penanganan acara penerimaan koneksi titik akhir.
DiConnectComplete
OnConnectCompleteFunct OnConnectComplete
Delegasi fungsi penanganan peristiwa pembentukan koneksi titik akhir.
PadaKoneksiDitutup
OnConnectionClosedFunct OnConnectionClosed
Delegasi fungsi penanganan acara dekat titik akhir.
PadaKoneksiDiterima
OnConnectionReceivedFunct OnConnectionReceived
Koneksi titik akhir menerima delegasi fungsi penanganan acara.
PadaDataDiterima
OnDataReceivedFunct OnDataReceived
Delegasi fungsi penanganan acara penerimaan teks pesan titik akhir.
DiDataTerkirim
OnDataSentFunct OnDataSent
Delegasi fungsi penanganan peristiwa transmisi teks pesan titik akhir.
PadaPeerClose
OnPeerCloseFunct OnPeerClose
Delegasi fungsi penanganan acara penerimaan setengah tutup titik akhir.
DiTCPSendIdleChanged
OnTCPSendIdleChangedFunct OnTCPSendIdleChanged
Delegasi fungsi penanganan peristiwa dari pensinyalan titik akhir ketika kemalasan dari saluran pengiriman koneksi TCP berubah.
Ini digunakan oleh lapisan atas untuk mengambil tindakan yang tepat berdasarkan apakah data yang dikirim telah dikirimkan dengan andal ke rekan.
TerimaDiaktifkan
bool ReceiveEnabled
Sakelar kontrol yang menunjukkan apakah aplikasi menerima data.
Negara
enum nl::Inet::TCPEndPoint::@10 State
Keadaan dinamis dasar dari titik akhir yang mendasarinya.
Objek diinisialisasi dalam status "siap", lanjutkan ke status berikutnya yang sesuai dengan penyederhanaan status mesin status transport TCP.
Catatan: kBasisState_Closed
pencacahan negara dipetakan ke kState_Ready
untuk alasan biner-kompatibilitas sejarah. Yang ada kState_Closed
ada untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "yang sebelumnya dibuka sekarang ditutup" yang ada sebelumnya di kState_Ready
dan kState_Closed
negara.
Fungsi publik
Menggugurkan
void Abort( void )
Tutup titik akhir secara gagal, dengan kata lain, kirim paket RST.
Terima
INET_ERROR AckReceive( uint16_t len )
Mengakui penerimaan teks pesan.
Gunakan metode ini untuk mengakui penerimaan semua atau sebagian dari data yang diterima. Semantik operasional terdefinisi jika len
lebih besar dari total outstanding data yang diterima tidak diakui.
rincian | |||||||
---|---|---|---|---|---|---|---|
Parameter |
| ||||||
Mengembalikan Nilai |
|
Mengikat
INET_ERROR Bind( IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr )
Ikat titik akhir ke alamat IP antarmuka.
Mengikat titik akhir ke alamat IP antarmuka jaringan yang ditentukan.
rincian | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
| ||||||||||||
Mengembalikan Nilai |
|
Pada LwIP, metode ini tidak boleh dipanggil dengan kunci tumpukan LwIP yang sudah diperoleh.
Menutup
INET_ERROR Close( void )
Memulai TCP full close, dengan kata lain, selesai dengan mengirim dan menerima.
rincian | |||||||
---|---|---|---|---|---|---|---|
Mengembalikan Nilai |
|
Menghubung
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.
rincian | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
| ||||||||
Mengembalikan Nilai |
|
NonaktifkanKeepAlive
INET_ERROR DisableKeepAlive( void )
Nonaktifkan opsi TCP "tetap hidup".
TCPEndPoint :: DisableKeepAlive .
Nonaktifkan probe keepalive TCP pada koneksi TCP terkait.
rincian | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Mengembalikan Nilai |
|
Catatan: Metode ini hanya bisa dipanggil ketika endpoint adalah di salah satu negara terhubung. Metode ini tidak melakukan apa pun jika keepalives belum diaktifkan pada titik akhir.
NonaktifkanTerima
void DisableReceive( void )
Nonaktifkan penerimaan.
Nonaktifkan semua pengendali acara. Data yang dikirim ke titik akhir yang menonaktifkan penerimaan akan diakui hingga jendela penerimaan habis.
AktifkanKeepAlive
INET_ERROR EnableKeepAlive( uint16_t interval, uint16_t timeoutCount )
Aktifkan opsi TCP "tetap hidup".
TCPEndPoint :: EnableKeepAlive .
Mulai otomatis transmisi TCP segmen "tetap-hidup" Probe setiap interval
detik. Koneksi akan membatalkan secara otomatis setelah menerima respon negatif, atau setelah mengirim timeoutCount
segmen penyelidikan tanpa menerima respon positif.
rincian | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
| ||||||||||
Mengembalikan Nilai |
|
Lihat RFC 1122, bagian 4.2.3.6 untuk detail spesifikasi.
Aktifkan probe keepalive TCP pada koneksi TCP terkait.
Catatan: Metode ini hanya bisa dipanggil ketika endpoint adalah di salah satu negara terhubung. Metode ini dapat dipanggil beberapa kali untuk menyesuaikan interval keepalive atau hitungan timeout.
rincian | |||||
---|---|---|---|---|---|
Parameter |
|
AktifkanTanpa Penundaan
INET_ERROR EnableNoDelay( void )
AktifkanTanpa Penundaan.
TCPEndPoint :: EnableNoDelay .
Matikan algoritma buffering nagle di TCP dengan mengatur opsi soket TCP_NODELAY.
AktifkanTerima
void EnableReceive( void )
Aktifkan penerimaan.
Aktifkan semua event handler. Data yang dikirim ke titik akhir yang menonaktifkan penerimaan akan diakui hingga jendela penerimaan habis.
Gratis
void Free( void )
Memulai (atau melanjutkan) penutupan penuh TCP, mengabaikan kesalahan.
Objek dikembalikan ke kumpulan gratis, dan semua referensi pengguna yang tersisa selanjutnya tidak valid.
DapatkanInfo Lokal
INET_ERROR GetLocalInfo( IPAddress *retAddr, uint16_t *retPort )
Ekstrak alamat IP dan port TCP dari titik akhir lokal.
Jangan gunakan NULL
nilai pointer untuk baik argumen.
rincian | |||||||
---|---|---|---|---|---|---|---|
Parameter |
| ||||||
Mengembalikan Nilai |
|
DapatkanPeerInfo
INET_ERROR GetPeerInfo( IPAddress *retAddr, uint16_t *retPort ) const
Ekstrak alamat IP dan port TCP dari titik akhir jarak jauh.
Jangan gunakan NULL
nilai pointer untuk baik argumen.
rincian | |||||||
---|---|---|---|---|---|---|---|
Parameter |
| ||||||
Mengembalikan Nilai |
|
Terhubung
bool IsConnected( void ) const
Ekstrak apakah koneksi TCP dibuat.
Mendengarkan
INET_ERROR Listen( uint16_t backlog )
Siapkan titik akhir untuk menerima pesan TCP.
Jika State
sudah kState_Listening
, maka tidak ada operasi dilakukan, jika tidak State
diatur untuk kState_Listening
dan titik akhir siap untuk pesan TCP yang diterima, menurut semantik platform.
rincian | |||||
---|---|---|---|---|---|
Parameter |
| ||||
Mengembalikan Nilai |
|
Pada beberapa platform, backlog
argumen tidak digunakan (kedalaman antrian adalah tetap, hanya satu koneksi 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 pengidentifikasi untuk titik akhir.
rincian | |
---|---|
Kembali | Mengembalikan pengidentifikasi unik buram untuk log penggunaan. |
Tandai Aktif
void MarkActive( void )
Catat aktivitasnya, dengan kata lain, reset timer idle.
Setel ulang penghitung waktu idle ke nol.
TertundaMenerimaPanjang
uint32_t PendingReceiveLength( void )
Ekstrak panjang data penerimaan yang tidak diakui.
rincian | |
---|---|
Kembali | Jumlah byte dalam menerima antrian yang belum diakui dengan AckReceive(uint16_t len) . |
TertundaKirim Panjang
uint32_t PendingSendLength( void )
Ekstrak panjang data yang menunggu pengiriman pertama.
rincian | |
---|---|
Kembali | Jumlah byte yang tidak ditransmisikan dalam antrian transmisi. |
PutBackReceivedData
INET_ERROR PutBackReceivedData( Weave::System::PacketBuffer *data )
Dorong teks pesan kembali ke kepala antrian terima.
Metode ini hanya dapat dipanggil oleh event handler penerimaan data untuk mengembalikan bagian data yang tidak diketahui ke antrian penerimaan. Semantik operasional terdefinisi jika pemanggil adalah di luar lingkup dari data penerimaan event handler, data
bukan Weave::System::PacketBuffer
diberikan kepada handler, atau data
tidak mengandung bagian tidak diakui tersisa setelah byte diakui oleh panggilan sebelum AckReceive(uint16_t len)
metode.
rincian | |||||
---|---|---|---|---|---|
Parameter |
| ||||
Mengembalikan Nilai |
|
Kirim
INET_ERROR Send( Weave::System::PacketBuffer *data, bool push )
Kirim teks pesan pada koneksi TCP.
The Weave::System::PacketBuffer::Free
metode ini disebut pada data
argumen terlepas dari apakah transmisi berhasil atau gagal.
rincian | |||||
---|---|---|---|---|---|
Parameter |
| ||||
Mengembalikan Nilai |
|
Setel Waktu Habis Sambungan
void SetConnectTimeout( const uint32_t connTimeoutMsecs )
Setel batas waktu untuk Connect agar berhasil atau mengembalikan kesalahan.
rincian | |||
---|---|---|---|
Parameter |
|
Setel Waktu Habis Pengguna
INET_ERROR SetUserTimeout( uint32_t userTimeoutMillis )
Setel opsi soket TCP TCP_USER_TIMEOUT.
TCPEndPoint :: SetUserTimeout .
Ketika nilainya lebih besar dari 0, itu menentukan jumlah waktu maksimum dalam milidetik bahwa data yang dikirimkan mungkin tetap tidak diketahui sebelum TCP secara paksa menutup koneksi yang sesuai. Jika nilai opsi ditetapkan sebagai 0, TCP akan menggunakan default sistem. Lihat RFC 5482, untuk rincian lebih lanjut.
rincian | |||||||
---|---|---|---|---|---|---|---|
Parameter |
| ||||||
Mengembalikan Nilai |
|
Setel opsi soket batas waktu pengguna TCP.
Ketika nilainya lebih besar dari 0, itu menentukan jumlah waktu maksimum dalam milidetik bahwa data yang ditransmisikan mungkin tetap tidak diketahui sebelum TCP secara paksa menutup koneksi yang sesuai. Jika nilai opsi ditetapkan sebagai 0, TCP akan menggunakan default sistem. Lihat RFC 5482, untuk rincian lebih lanjut.
Catatan: Metode ini hanya bisa dipanggil ketika endpoint adalah di salah satu negara terhubung. Metode ini dapat dipanggil beberapa kali untuk menyesuaikan interval keepalive atau hitungan timeout.
Menutup
INET_ERROR Shutdown( void )
Memulai TCP setengah dekat, dengan kata lain, selesai dengan pengiriman.
rincian | |||||||
---|---|---|---|---|---|---|---|
Mengembalikan Nilai |
|