nl:: Inet:: TCPEndPoint
#include <src/inet/TCPEndPoint.h>
Objek di class ini merepresentasikan endpoint transport TCP.
Ringkasan
Nest Inet Layer mengenkapsulasi metode untuk berinteraksi dengan endpoint transpor TCP (soket SOCK_STREAM pada sistem turunan BSD dan Linux) atau blok kontrol protokol TCP LwIP, sesuai konfigurasi sistem.
Inheritance
Mewarisi dari: nl::Inet::EndPointBasis
Jenis publik |
|
---|---|
@10{
|
enum Status dinamis dasar endpoint yang mendasarinya. |
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 pembentukan koneksi. |
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
|
typedefvoid(*
Jenis fungsi penanganan peristiwa pembentukan koneksi. |
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)
|
typedefvoid(*
Jenis koneksi menerima 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 fungsi penanganan sinyal TCP SendIdle berubah. |
Atribut publik |
|
---|---|
OnAcceptError
|
Delegasi fungsi penanganan peristiwa penerimaan koneksi endpoint.
|
OnConnectComplete
|
Delegasi fungsi penanganan peristiwa pembuatan koneksi endpoint.
|
OnConnectionClosed
|
Delegasi fungsi penanganan peristiwa close endpoint.
|
OnConnectionReceived
|
Koneksi endpoint menerima delegasi fungsi penanganan peristiwa.
|
OnDataReceived
|
Delegasi fungsi penanganan peristiwa penerimaan pesan teks endpoint.
|
OnDataSent
|
Delegasi fungsi penanganan peristiwa transmisi pesan teks endpoint.
|
OnPeerClose
|
Delegasi fungsi penanganan peristiwa penerimaan setengah close dari endpoint.
|
OnTCPSendIdleChanged
|
Delegasi fungsi penanganan peristiwa dari pemberian sinyal endpoint saat status tidak ada aktivitas koneksi TCP pada saluran pengiriman berubah.
|
ReceiveEnabled
|
bool
Tombol kontrol yang menunjukkan apakah aplikasi menerima data.
|
State
|
enum nl::Inet::TCPEndPoint::@10
Status dinamis dasar endpoint yang mendasarinya.
|
Fungsi publik |
|
---|---|
Abort(void)
|
void
Tutup endpoint secara aborsi, 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 endpoint ke alamat IP antarmuka.
|
Close(void)
|
Memulai TCP {i>full close<i}, dengan kata lain, selesai dengan baik mengirim dan menerima.
|
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
|
Memulai koneksi TCP.
|
DisableKeepAlive(void)
|
Menonaktifkan "keep-alive" TCP sebelumnya.
|
DisableReceive(void)
|
void
Menonaktifkan penerimaan sinyal.
|
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
|
Mengaktifkan "keep-alive" TCP sebelumnya.
|
EnableNoDelay(void)
|
EnableNoPenundaan.
|
EnableReceive(void)
|
void
Aktifkan penerimaan sinyal.
|
Free(void)
|
void
Memulai (atau melanjutkan) TCP {i>full close<i}, mengabaikan kesalahan.
|
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
|
Ekstrak alamat IP dan port TCP titik akhir lokal.
|
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
|
Ekstrak alamat IP dan port TCP dari endpoint jarak jauh.
|
IsConnected(void) const
|
bool
Ekstrak apakah koneksi TCP tersambung.
|
Listen(uint16_t backlog)
|
Siapkan endpoint untuk menerima pesan TCP.
|
LogId(void)
|
uint16_t
Dapatkan ID untuk endpoint.
|
MarkActive(void)
|
void
Catat aktivitas, dengan kata lain, mereset timer tidak ada aktivitas.
|
PendingReceiveLength(void)
|
uint32_t
Ekstrak panjang data penerimaan yang tidak dikonfirmasi.
|
PendingSendLength(void)
|
uint32_t
Ekstrak panjang data yang menunggu pengiriman pertama.
|
PutBackReceivedData(Weave::System::PacketBuffer *data)
|
Mengirim teks pesan kembali ke kepala antrean penerima.
|
Send(Weave::System::PacketBuffer *data, bool push)
|
Mengirim teks pesan melalui 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_USER_TIMEOUT.
|
Shutdown(void)
|
Memulai TCP setengah dekat, dengan
kata lain, selesai dengan pengiriman.
|
Jenis publik
@10
@10
Status dinamis dasar endpoint yang mendasarinya.
Objek diinisialisasi dalam status "siap" status selanjutnya, lanjutkan ke status selanjutnya 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 dibuat untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "sebelumnya dibuka sekarang
ditutup" yang sudah ada sebelumnya di status kState_Ready
dan kState_Closed
.
Properti | |
---|---|
kState_Bound
|
Endpoint terikat, tetapi tidak memproses. |
kState_Closed
|
Endpoint ditutup, siap untuk dirilis. |
kState_Closing
|
Endpoint menutup 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 dengan setengah tertutup. |
kState_SendShutdown
|
Endpoint memulai setengahnya. |
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 pembentukan koneksi.
Berikan fungsi jenis ini kepada anggota delegasi OnConnectComplete
untuk memproses peristiwa pembuatan koneksi di endPoint
. Argumen err
membedakan koneksi yang berhasil dengan koneksi yang gagal.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
OnConnectionClosedFunct
void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Jenis fungsi penanganan peristiwa pembentukan 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 menerima fungsi penanganan peristiwa.
Berikan fungsi jenis ini kepada anggota delegasi OnConnectionReceived
untuk memproses peristiwa penerimaan koneksi di listeningEndPoint
. Endpoint conEndPoint
yang baru diterima terletak 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.
Berikan fungsi jenis ini kepada anggota delegasi OnDataReceived
untuk memproses peristiwa penerimaan data di endPoint
dengan data
adalah teks pesan yang diterima.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Pengendali peristiwa penerimaan data harus mengonfirmasi data yang diproses menggunakan metode AckReceive
. Metode Free
pada buffer data juga harus dipanggil kecuali jika PutBackReceivedData
digunakan sebagai gantinya.
OnDataSentFunct
void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
Jenis fungsi penanganan peristiwa transmisi data.
Berikan 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 pokok.
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 fungsi penanganan sinyal TCP SendIdle berubah.
Berikan fungsi jenis ini kepada anggota delegasi OnTCPSendIdleChanged
untuk memproses peristiwa saluran pengiriman TCPEndPoint yang mengubah status antara tidak ada aktivitas dan tidak ada aktivitas.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
Atribut publik
OnAcceptError
OnAcceptErrorFunct OnAcceptError
Delegasi fungsi penanganan peristiwa penerimaan koneksi endpoint.
OnConnectComplete
OnConnectCompleteFunct OnConnectComplete
Delegasi fungsi penanganan peristiwa pembuatan koneksi endpoint.
OnConnectionClosed
OnConnectionClosedFunct OnConnectionClosed
Delegasi fungsi penanganan peristiwa close endpoint.
OnConnectionReceived
OnConnectionReceivedFunct OnConnectionReceived
Koneksi endpoint menerima delegasi fungsi penanganan peristiwa.
OnDataReceived
OnDataReceivedFunct OnDataReceived
Delegasi fungsi penanganan peristiwa penerimaan pesan teks endpoint.
OnDataSent
OnDataSentFunct OnDataSent
Delegasi fungsi penanganan peristiwa transmisi pesan teks endpoint.
OnPeerClose
OnPeerCloseFunct OnPeerClose
Delegasi fungsi penanganan peristiwa penerimaan setengah close dari endpoint.
OnTCPSendIdleChanged
OnTCPSendIdleChangedFunct OnTCPSendIdleChanged
Delegasi fungsi penanganan peristiwa dari pemberian sinyal endpoint saat status tidak ada aktivitas koneksi TCP pada saluran pengiriman berubah.
Hal ini digunakan oleh lapisan atas untuk mengambil tindakan yang sesuai berdasarkan apakah data yang dikirim telah dikirimkan secara andal ke peer.
ReceiveEnabled
bool ReceiveEnabled
Tombol kontrol yang menunjukkan apakah aplikasi menerima data.
Negara Bagian
enum nl::Inet::TCPEndPoint::@10 State
Status dinamis dasar endpoint yang mendasarinya.
Objek diinisialisasi dalam status "siap" status selanjutnya, lanjutkan ke status selanjutnya 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 dibuat untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "sebelumnya dibuka sekarang
ditutup" yang sudah ada sebelumnya di status kState_Ready
dan kState_Closed
.
Fungsi publik
Batalkan
void Abort( void )
Tutup endpoint secara aborsi, dengan kata lain, kirim paket RST.
AckReceive
INET_ERROR AckReceive( uint16_t len )
Mengakui 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 dikonfirmasi.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
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 yang Ditampilkan |
|
Di LwIP, metode ini tidak boleh dipanggil dengan kunci stack LwIP yang sudah diperoleh.
Tutup
INET_ERROR Close( void )
Memulai TCP {i>full close<i}, dengan kata lain, selesai dengan baik mengirim dan menerima.
Detail | |||||||
---|---|---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
Connect
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 yang Ditampilkan |
|
DisableKeepAlive
INET_ERROR DisableKeepAlive( void )
Menonaktifkan "keep-alive" TCP sebelumnya.
TCPEndPoint::DisableKeepAlive.
Menonaktifkan pemeriksaan keepalive TCP pada koneksi TCP terkait.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
Catatan: Metode ini hanya dapat dipanggil jika endpoint dalam salah satu status terhubung. Metode ini tidak melakukan apa pun jika keepalive belum diaktifkan di endpoint.
DisableReceive
void DisableReceive( void )
Menonaktifkan penerimaan sinyal.
Menonaktifkan semua pengendali peristiwa. Data yang dikirim ke endpoint yang menonaktifkan penerimaan akan dikonfirmasi hingga periode penerimaan habis.
EnableKeepAlive
INET_ERROR EnableKeepAlive( uint16_t interval, uint16_t timeoutCount )
Mengaktifkan "keep-alive" TCP sebelumnya.
Memulai transmisi TCP "keep-alive" secara otomatis satelit setiap interval
detik. Koneksi akan dibatalkan secara otomatis setelah menerima respons negatif, atau setelah mengirim segmen pemeriksaan timeoutCount
tanpa menerima respons positif.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||
Nilai yang Ditampilkan |
|
Lihat RFC 1122, bagian 4.2.3.6 untuk detail spesifikasi.
Mengaktifkan pemeriksaan keepalive TCP pada koneksi TCP terkait.
Catatan: Metode ini hanya dapat dipanggil jika endpoint dalam salah satu status terhubung. Metode ini dapat dipanggil beberapa kali untuk menyesuaikan interval keepalive atau jumlah waktu tunggu.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
EnableNoDelay
INET_ERROR EnableNoDelay( void )
EnableNoPenundaan.
Nonaktifkan algoritma buffering nagle di TCP dengan menyetel opsi soket TCP_NOMIME.
EnableReceive
void EnableReceive( void )
Aktifkan penerimaan sinyal.
Aktifkan semua pengendali peristiwa. Data yang dikirim ke endpoint yang menonaktifkan penerimaan akan dikonfirmasi hingga periode penerimaan habis.
Gratis
void Free( void )
Memulai (atau melanjutkan) TCP {i>full close<i}, mengabaikan kesalahan.
Objek dikembalikan ke kumpulan gratis, dan semua referensi pengguna yang tersisa menjadi tidak valid.
GetLocalInfo
INET_ERROR GetLocalInfo( IPAddress *retAddr, uint16_t *retPort )
Ekstrak alamat IP dan port TCP titik akhir lokal.
Jangan gunakan nilai pointer NULL
untuk kedua argumen.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
GetPeerInfo
INET_ERROR GetPeerInfo( IPAddress *retAddr, uint16_t *retPort ) const
Ekstrak alamat IP dan port TCP dari endpoint jarak jauh.
Jangan gunakan nilai pointer NULL
untuk kedua argumen.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
IsConnected
bool IsConnected( void ) const
Ekstrak apakah koneksi TCP tersambung.
Dengarkan
INET_ERROR Listen( uint16_t backlog )
Siapkan endpoint untuk menerima pesan TCP.
Jika State
sudah kState_Listening
, tidak ada operasi yang dilakukan. Jika tidak, State
akan disetel ke kState_Listening
dan endpoint akan disiapkan untuk menerima pesan TCP, sesuai dengan semantik platform.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai yang Ditampilkan |
|
Di beberapa platform, argumen backlog
tidak digunakan (kedalaman antrean bersifat tetap; hanya satu koneksi yang dapat diterima dalam satu waktu).
Pada sistem LwIP, metode ini tidak boleh dipanggil dengan kunci stack 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 )
Catat aktivitas, dengan kata lain, mereset timer 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 )
Ekstrak panjang data yang menunggu pengiriman pertama.
Detail | |
---|---|
Hasil |
Jumlah byte yang tidak ditransmisikan dalam antrean transmisi.
|
PutBackReceivedData
INET_ERROR PutBackReceivedData( Weave::System::PacketBuffer *data )
Mengirim teks pesan kembali ke kepala antrean penerima.
Metode ini hanya dapat dipanggil oleh pengendali peristiwa penerimaan data untuk menempatkan kembali bagian data yang tidak dikonfirmasi kembali ke antrean penerimaan. Semantik operasional tidak ditentukan jika pemanggil berada di luar cakupan pengendali peristiwa penerimaan data, data
bukan Weave::System::PacketBuffer
yang diberikan kepada pengendali, atau data
tidak berisi bagian yang tidak dikonfirmasi yang tersisa setelah byte dikonfirmasi oleh panggilan sebelumnya ke metode AckReceive(uint16_t len)
.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai yang Ditampilkan |
|
Kirim
INET_ERROR Send( Weave::System::PacketBuffer *data, bool push )
Mengirim teks pesan melalui koneksi TCP.
Metode Weave::System::PacketBuffer::Free
dipanggil di argumen data
terlepas dari apakah transmisi berhasil atau gagal.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Nilai yang Ditampilkan |
|
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_USER_TIMEOUT.
Jika nilainya lebih besar dari 0, ini menentukan jumlah waktu maksimum dalam milidetik saat data yang dikirim mungkin tetap tidak dikonfirmasi sebelum TCP akan menutup koneksi yang sesuai secara paksa. Jika nilai opsi ditentukan sebagai 0, TCP akan menggunakan default sistem. Lihat RFC 5482, untuk detail lebih lanjut.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
Menyetel opsi soket waktu tunggu pengguna TCP.
Jika nilainya lebih besar dari 0, ini menentukan jumlah waktu maksimum dalam milidetik saat data yang dikirim mungkin tetap tidak dikonfirmasi sebelum TCP akan menutup koneksi yang sesuai secara paksa. Jika nilai opsi ditentukan sebagai 0, TCP akan menggunakan default sistem. Lihat RFC 5482, untuk detail lebih lanjut.
Catatan: Metode ini hanya dapat dipanggil jika endpoint dalam salah satu status terhubung. Metode ini dapat dipanggil beberapa kali untuk menyesuaikan interval keepalive atau jumlah waktu tunggu.
Nonaktif
INET_ERROR Shutdown( void )
Memulai TCP setengah dekat, dengan kata lain, selesai dengan pengiriman.
Detail | |||||||
---|---|---|---|---|---|---|---|
Nilai yang Ditampilkan |
|