pub struct DatagramWriter { /* private fields */ }
Expand description
The writer for application to send the datagram frames to the peer.
You can clone the writer or wrapper it in an Arc
to send the datagram frames in many tasks.
Implementations§
Source§impl DatagramWriter
impl DatagramWriter
Sourcepub fn send_bytes(&self, data: Bytes) -> Result<(), Error>
pub fn send_bytes(&self, data: Bytes) -> Result<(), Error>
Send unreliable data to the peer.
The data
will not be sent immediately, and the data
sent is not guaranteed to be delivered.
If the peer dont support want to receive datagram frames, the method will return an error.
The size of the datagram frame is limited by the max_datagram_frame_size
transport parameter set by the peer.
See RFC for more details about transport
parameters.
If the size of the data
exceeds the limit, the method will return an error.
You can call DatagramWriter::max_datagram_frame_size
to know the maximum size of the datagram frame you can
send, read its documentation for more details.
If the connection is closing or already closed, the method will also return an error.
Sourcepub fn send(&self, data: &[u8]) -> Result<(), Error>
pub fn send(&self, data: &[u8]) -> Result<(), Error>
Send unreliable data to the peer.
The data
will not be sent immediately, and the data
sent is not guaranteed to be delivered.
The size of the datagram frame is limited by the max_datagram_frame_size
transport parameter set by the peer.
See RFC for more details about transport
parameters.
If the size of the data
exceeds the limit, the method will return an error.
You can call DatagramWriter::max_datagram_frame_size
to know the maximum size of the datagram frame you can
send, read its documentation for more details.
If the connection is closing or already closed, the method will also return an error.
Sourcepub fn max_datagram_frame_size(&self) -> Result<usize, Error>
pub fn max_datagram_frame_size(&self) -> Result<usize, Error>
Returns the maximum size of the datagram frame that can be sent to the peer.
If the connection is closing or already closed, the method will return an error.
The value is a transport parameter set by the peer, and you cant send a datagram frame whose size exceeds this value.
Because of the encoding, the size of the data you can send is less than this value, usually 1 byte less. Although
its possiable to send a datagram frame with the size of max_datagram_frame_size
- 1, its hardly to happen.
We recommend you to send unreliable data that the size is less or equal to max_encoding_size
- 1
- the size of the size of the data's length in varint form
. varint in definded in the QUIC RFC.
Size 0 means the peer does not want to receive datagram frames, but it dont means the peer will not send datagram frames to you.
Trait Implementations§
Source§impl Clone for DatagramWriter
impl Clone for DatagramWriter
Source§fn clone(&self) -> DatagramWriter
fn clone(&self) -> DatagramWriter
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more