111,119
社区成员
发帖
与我相关
我的任务
分享protected void CallBackReceive(IAsyncResult asyncResult)
{
StateObject state = (StateObject)asyncResult.AsyncState;
try
{
if ((state.socket == null) || (!state.socket.Connected) || (!this.serverRunTag) )
{
return;
}
state.receiveSize = state.socket.EndReceive(asyncResult);
if (state.receiveSize > 0)
{
state.stream.Seek(state.streamLength, System.IO.SeekOrigin.Begin);
state.stream.Write(state.buff,0, state.receiveSize);
state.streamLength += state.receiveSize;
//
if (state.buff[state.receiveSize-1]!=byte.Parse("0"))
{
if (state.socket.Available > 0)
{
state.socket.BeginReceive(state.buff, 0, state.buff.Length, SocketFlags.None, new AsyncCallback(CallBackReceive), state);
return;
}
}
else
{
//消息处理
this.ReceiveCompleteHandle(state);
}
}
if (state.socket != null)
if (state.socket.Connected)
state.socket.BeginReceive(state.buff, 0, state.buff.Length, SocketFlags.None, new AsyncCallback(CallBackReceive), state);
}
catch (SocketException e)
{
//处理错误
}
}