【发布时间】:2014-05-14 09:10:43
【问题描述】:
我有这个代码
_socket.BeginReceive(
_buffer,
0,
_buffer.Length,
SocketFlags.None,
_asyncCallback,
sSocketName);
**with**
_buffer.Length = 262144;
_asyncCallback = OnReceive;
sSocketName is a state string object (sSocketName = "History")
还有 AsynCallback 委托方法:
private void OnReceive(IAsyncResult asyn)
{
if (asyn.AsyncState.ToString().Equals("History"))
{
int receivedBytes = _socket.EndReceive(asyn);
string data = Encoding.ASCII.GetString(_buffer, 0, receivedBytes);
//...
}
//...
}
receivedBytes 是一个整数,表示接收到的字节数。就我而言,大约是 23,000 -> 25,000。
套接字服务器是一个互联网服务器,它以字符串消息的形式不断将原始数据推送到我的客户端套接字,它有超过 25,000 字节的数据。
所以我的问题:
- 什么决定了接收的字节数?
- 什么决定接收是否完成?
【问题讨论】:
标签: c# sockets asynchronous asyncsocket