[−][src]Struct kcpclient::kcp::Kcp
KCP control
Implementations
impl Kcp
[src]
pub fn new(conv: u32, output: Arc<UdpSocket>) -> Self
[src]
Creates a KCP control object, conv
must be equal in both endpoints in one connection.
output
is the callback object for writing.
conv
represents conversation.
pub fn new_stream(conv: u32, output: Arc<UdpSocket>) -> Self
[src]
Creates a KCP control object in stream mode, conv
must be equal in both endpoints in one connection.
output
is the callback object for writing.
conv
represents conversation.
pub fn peeksize(&self) -> KcpResult<usize>
[src]
Check buffer size without actually consuming it
pub fn recv(&mut self, buf: &mut [u8]) -> KcpResult<usize>
[src]
Receive data from buffer
pub fn send(&mut self, buf: &[u8]) -> KcpResult<usize>
[src]
Send bytes into buffer
pub fn input_conv(&mut self)
[src]
Get conv
from the next input
call
pub fn waiting_conv(&self) -> bool
[src]
Check if Kcp is waiting for the next input
pub fn set_conv(&mut self, conv: u32)
[src]
Set conv
value
pub fn conv(&self) -> u32
[src]
Get conv
pub fn input(&mut self, buf: &[u8]) -> KcpResult<usize>
[src]
Call this when you received a packet from raw connection
pub fn flush_ack(&mut self) -> KcpResult<()>
[src]
Flush pending ACKs
pub fn flush(&mut self) -> KcpResult<()>
[src]
Flush pending data in buffer.
pub fn update(&mut self, current: u32) -> KcpResult<()>
[src]
Update state every 10ms ~ 100ms.
Or you can ask check
when to call this again.
pub fn check(&self, current: u32) -> u32
[src]
Determine when you should call update
.
Return when you should invoke update
in millisec, if there is no input
/send
calling.
You can call update
in that time without calling it repeatly.
pub fn set_mtu(&mut self, mtu: usize) -> KcpResult<()>
[src]
Change MTU size, default is 1400
MTU = Maximum Transmission Unit
pub fn mtu(&self) -> usize
[src]
Get MTU
pub fn set_interval(&mut self, interval: u32)
[src]
Set check interval
pub fn set_nodelay(
&mut self,
nodelay: bool,
interval: i32,
resend: i32,
nc: bool
)
[src]
&mut self,
nodelay: bool,
interval: i32,
resend: i32,
nc: bool
)
Set nodelay
fastest config: nodelay(true, 20, 2, true)
nodelay
: default is disable (false)
interval
: internal update timer interval in millisec, default is 100ms
resend
: 0:disable fast resend(default), 1:enable fast resend
nc
: false
: normal congestion control(default), true
: disable congestion control
pub fn set_wndsize(&mut self, sndwnd: u16, rcvwnd: u16)
[src]
Set wndsize
set maximum window size: sndwnd=32
, rcvwnd=32
by default
pub fn snd_wnd(&self) -> u16
[src]
snd_wnd
Send window
pub fn rcv_wnd(&self) -> u16
[src]
rcv_wnd
Receive window
pub fn wait_snd(&self) -> usize
[src]
Get waitsnd
, how many packet is waiting to be sent
pub fn set_rx_minrto(&mut self, rto: u32)
[src]
Set rx_minrto
pub fn set_fast_resend(&mut self, fr: u32)
[src]
Set fastresend
pub fn header_len() -> usize
[src]
KCP header size
pub fn is_stream(&self) -> bool
[src]
Enabled stream or not
pub fn set_stream(&mut self, stream: bool)
[src]
SET STREAM
pub fn mss(&self) -> u32
[src]
Maximum Segment Size
pub fn set_maximum_resend_times(&mut self, dead_link: u32)
[src]
Set maximum resend times
pub fn is_dead_link(&self) -> bool
[src]
Check if KCP connection is dead (resend times excceeded)
Auto Trait Implementations
impl RefUnwindSafe for Kcp
impl Send for Kcp
impl Sync for Kcp
impl Unpin for Kcp
impl UnwindSafe for Kcp
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,