override internal IAsyncResult BeginReceive(
byte[] buffer,
int offset,
int size,
AsyncCallback callback,
object state
)
{
Receive_SO stateObj = null;
CheckDisposed();
stateObj = new Receive_SO(callback, state);
if((stateObj.Read = FetchBufferData(buffer, offset, size)) > 0)
{
stateObj.SetCompleted();
}
else
{
_socket.BeginReceive(
buffer,
offset,
size,
SocketFlags.None,
new AsyncCallback(Receive_End),
stateObj);
}
return stateObj;
}