mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
332 lines
14 KiB
XML
332 lines
14 KiB
XML
<?xml version="1.0"?>
|
||
<doc>
|
||
<assembly>
|
||
<name>Kcp</name>
|
||
</assembly>
|
||
<members>
|
||
<member name="T:System.Net.Sockets.Kcp.IKcpCallback">
|
||
<summary>
|
||
Kcp回调
|
||
</summary>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.IKcpCallback.Output(System.Buffers.IMemoryOwner{System.Byte},System.Int32)">
|
||
<summary>
|
||
kcp 发送方向输出
|
||
</summary>
|
||
<param name="buffer">kcp 交出发送缓冲区控制权,缓冲区来自<see cref="M:System.Net.Sockets.Kcp.IKcpCallback.RentBuffer(System.Int32)"/></param>
|
||
<param name="avalidLength">数据的有效长度</param>
|
||
<returns>不需要返回值</returns>
|
||
<remarks>通过增加 avalidLength 能够在协议栈中有效的减少数据拷贝</remarks>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.IKcpCallback.RentBuffer(System.Int32)">
|
||
<summary>
|
||
外部提供缓冲区,可以在外部链接一个内存池
|
||
</summary>
|
||
</member>
|
||
<member name="T:System.Net.Sockets.Kcp.Kcp">
|
||
<summary>
|
||
https://github.com/skywind3000/kcp/wiki/Network-Layer
|
||
<para>外部buffer ----拆分拷贝----等待列表 -----移动----发送列表----拷贝----发送buffer---output</para>
|
||
https://github.com/skywind3000/kcp/issues/118#issuecomment-338133930
|
||
</summary>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.#ctor(System.UInt32,System.Net.Sockets.Kcp.IKcpCallback)">
|
||
<summary>
|
||
create a new kcp control object, 'conv' must equal in two endpoint
|
||
from the same connection.
|
||
</summary>
|
||
<param name="conv_"></param>
|
||
<param name="output_"></param>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.Kcp.conv">
|
||
<summary>
|
||
频道号
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.mtu">
|
||
<summary>
|
||
最大传输单元(Maximum Transmission Unit,MTU)
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.Kcp.BufferNeedSize">
|
||
<summary>
|
||
缓冲区最小大小
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.mss">
|
||
<summary>
|
||
最大报文段长度
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.rcv_nxt">
|
||
<summary>
|
||
下一个等待接收消息ID
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.IsLittleEndian">
|
||
<summary>
|
||
<para>https://github.com/skywind3000/kcp/issues/53</para>
|
||
按照 C版 设计,使用小端字节序
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.acklist">
|
||
<summary>
|
||
发送 ack 队列
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.snd_queue">
|
||
<summary>
|
||
发送等待队列
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.snd_buf">
|
||
<summary>
|
||
正在发送列表
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.rcv_queue">
|
||
<summary>
|
||
正在等待触发接收回调函数消息列表
|
||
<para>需要执行的操作 添加 遍历 删除</para>
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.rcv_buf">
|
||
<summary>
|
||
正在等待重组消息列表
|
||
<para>需要执行的操作 添加 插入 遍历 删除</para>
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.Kcp.m_disposing">
|
||
<summary>
|
||
是否正在释放
|
||
</summary>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Dispose">
|
||
<summary>
|
||
释放不是严格线程安全的,尽量使用和Update相同的线程调用,
|
||
或者等待析构时自动释放。
|
||
</summary>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.CreateBuffer(System.Int32)">
|
||
<summary>
|
||
如果外部能够提供缓冲区则使用外部缓冲区,否则new byte[]
|
||
</summary>
|
||
<param name="needSize"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Recv(System.Span{System.Byte})">
|
||
<summary>
|
||
user/upper level recv: returns size, returns below zero for EAGAIN
|
||
</summary>
|
||
<param name="buffer"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.UncheckRecv(System.Span{System.Byte})">
|
||
<summary>
|
||
这个函数不检查任何参数
|
||
</summary>
|
||
<param name="buffer"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Move_Rcv_buf_2_Rcv_queue">
|
||
<summary>
|
||
move available data from rcv_buf -> rcv_queue
|
||
</summary>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.PeekSize">
|
||
<summary>
|
||
check the size of next message in the recv queue
|
||
</summary>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Send(System.Span{System.Byte})">
|
||
<summary>
|
||
user/upper level send, returns below zero for error
|
||
</summary>
|
||
<param name="buffer"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Update_ack(System.Int32)">
|
||
<summary>
|
||
update ack.
|
||
</summary>
|
||
<param name="rtt"></param>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Input(System.Span{System.Byte})">
|
||
<summary>
|
||
when you received a low level packet (eg. UDP packet), call it
|
||
</summary>
|
||
<param name="data"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Flush">
|
||
<summary>
|
||
flush pending data
|
||
</summary>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Update(System.DateTime@)">
|
||
<summary>
|
||
update state (call it repeatedly, every 10ms-100ms), or you can ask
|
||
ikcp_check when to call it again (without ikcp_input/_send calling).
|
||
</summary>
|
||
<param name="time">DateTime.UtcNow</param>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Check(System.DateTime)">
|
||
<summary>
|
||
Determine when should you invoke ikcp_update:
|
||
returns when you should invoke ikcp_update in millisec, if there
|
||
is no ikcp_input/_send calling. you can call ikcp_update in that
|
||
time, instead of call update repeatly.
|
||
<para></para>
|
||
Important to reduce unnacessary ikcp_update invoking. use it to
|
||
schedule ikcp_update (eg. implementing an epoll-like mechanism,
|
||
or optimize ikcp_update when handling massive kcp connections)
|
||
<para></para>
|
||
</summary>
|
||
<param name="time"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.SetMtu(System.Int32)">
|
||
<summary>
|
||
change MTU size, default is 1400
|
||
<para>** 这个方法不是线程安全的。请在没有发送和接收时调用 。</para>
|
||
</summary>
|
||
<param name="mtu"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.Interval(System.Int32)">
|
||
<summary>
|
||
|
||
</summary>
|
||
<param name="interval_"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.NoDelay(System.Int32,System.Int32,System.Int32,System.Int32)">
|
||
<summary>
|
||
fastest: ikcp_nodelay(kcp, 1, 20, 2, 1)
|
||
</summary>
|
||
<param name="nodelay_">0:disable(default), 1:enable</param>
|
||
<param name="interval_">internal update timer interval in millisec, default is 100ms</param>
|
||
<param name="resend_">0:disable fast resend(default), 1:enable fast resend</param>
|
||
<param name="nc_">0:normal congestion control(default), 1:disable congestion control</param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.Kcp.WndSize(System.Int32,System.Int32)">
|
||
<summary>
|
||
set maximum window size: sndwnd=32, rcvwnd=32 by default
|
||
</summary>
|
||
<param name="sndwnd"></param>
|
||
<param name="rcvwnd"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.Kcp.WaitSnd">
|
||
<summary>
|
||
get how many packet is waiting to be sent
|
||
</summary>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="T:System.Net.Sockets.Kcp.KcpSegment">
|
||
<summary>
|
||
调整了没存布局,直接拷贝块提升性能。
|
||
<para>结构体保存内容只有一个指针,不用担心参数传递过程中的性能</para>
|
||
https://github.com/skywind3000/kcp/issues/118#issuecomment-338133930
|
||
<para>不要对没有初始化的KcpSegment(内部指针为0,所有属性都将指向位置区域) 进行任何赋值操作,可能导致内存损坏。
|
||
出于性能考虑,没有对此项进行安全检查。</para>
|
||
</summary>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.KcpSegment.AllocHGlobal(System.Int32)">
|
||
<summary>
|
||
使用完必须显示释放,否则内存泄漏
|
||
</summary>
|
||
<param name="appendDateSize"></param>
|
||
<returns></returns>
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.KcpSegment.FreeHGlobal(System.Net.Sockets.Kcp.KcpSegment)">
|
||
<summary>
|
||
释放非托管内存
|
||
</summary>
|
||
<param name="seg"></param>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.resendts">
|
||
以下为本机使用的参数
|
||
<summary>
|
||
offset = 0
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.rto">
|
||
<summary>
|
||
offset = 4
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.fastack">
|
||
<summary>
|
||
offset = 8
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.xmit">
|
||
<summary>
|
||
offset = 12
|
||
</summary>
|
||
</member>
|
||
<member name="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset">
|
||
以下为需要网络传输的参数
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.conv">
|
||
<summary>
|
||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/>
|
||
</summary>
|
||
https://github.com/skywind3000/kcp/issues/134
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.cmd">
|
||
<summary>
|
||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 4
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.frg">
|
||
<summary>
|
||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 5
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.wnd">
|
||
<summary>
|
||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 6
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.ts">
|
||
<summary>
|
||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 8
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.sn">
|
||
<summary>
|
||
<para> SendNumber? </para>
|
||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 12
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.una">
|
||
<summary>
|
||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 16
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.len">
|
||
<summary>
|
||
<para> AppendDateSize </para>
|
||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 20
|
||
</summary>
|
||
</member>
|
||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.data">
|
||
<summary>
|
||
|
||
</summary>
|
||
https://github.com/skywind3000/kcp/issues/35#issuecomment-263770736
|
||
</member>
|
||
<member name="M:System.Net.Sockets.Kcp.KcpSegment.Encode(System.Span{System.Byte})">
|
||
<summary>
|
||
将片段中的要发送的数据拷贝到指定缓冲区
|
||
</summary>
|
||
<param name="buffer"></param>
|
||
<returns></returns>
|
||
</member>
|
||
</members>
|
||
</doc>
|