Files
TEngine/Assets/Packages/Kcp.xml
ALEXTANG 974094ae7b Kcp Test
Kcp Test
2022-08-11 19:37:50 +08:00

332 lines
14 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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 UnitMTU
</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>