socket异步传输时BeginReceive()的问题
private void ReceiveCallBack(IAsyncResult iar)
{
DataObject state = (DataObject)iar.AsyncState;
int sent = state.WorkSocket.EndReceive(iar);
if (sent > 0)
{
state.sb.Append(Encoding.ASCII.GetString(state.buffer));
state.WorkSocket.BeginReceive(state.buffer, 0, state.buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallBack), state);
}
else
{
if (state.sb.Length > 0)
{
string s = state.sb.ToString();
}
}
}
上面的BeginReceive是用来处理一次没有将数据全部接收完的情况的,本人初学,是照着msdn上写的,但是调试的时候发现这段程序不对,请问一下这段程序到底是如何执行的,好像永远也执行不到else那段语句!