c# SocketAsyncEventArgs.BytesTransferred遇到的问题

SocketAsyncEventArgs.Buffer是套接字的缓冲区,我设置了读缓冲区的长度是10240,但是客户端发送了一个长度是1081的数据,但SocketAsyncEventArgs.BytesTransferred的值只有1024 导致数据不完整,这个是怎么回事呢。而且本地没问题,外网就有问题,但偶尔没问题,这个是什么问题呢?和路由器设置有关系?

先获取在套接字操作中传输的字节数,虽然你设置了读缓冲区的长度为10240,实际客户端发送的数据长度只有1081。我认为SocketAsyncEventArgs.BytesTransferred 只会返回实际接收到的数据长度,不表示你的数据丢失了,只是该事件中传输的数据长度。
跟路由器没啥关系,网络配置一般你不用去动的

public int BytesTransferred { get; }