void ProcessMess(ReviceBuffer buff) { byte[] byt = buff.ReviceByte; string Mess = Encoding.ASCII.GetString(byt).Trim().Trim((char)'\0'); if (Mess.StartsWith("GetFile ", StringComparison.InvariantCultureIgnoreCase)) { string FileName = Mess.Replace("GetFile ", "").Trim().Trim((char)0); SendFile(FileName, buff.Client); } else if (Mess.Equals("Success", StringComparison.InvariantCultureIgnoreCase)) { ars.Set(); } else if (Mess.Equals("Error", StringComparison.InvariantCultureIgnoreCase)) { byte[] sendBuff = SocketFileInfo.GetSendByte(socketSendFile); ars.Reset(); socketSendFile.Client.BeginSend( sendBuff, 0, sendBuff.Length, SocketFlags.None, null, null); } else if (Mess.Equals("SynchroGetFile ", StringComparison.InvariantCultureIgnoreCase)) { string FileName = Mess.Replace("SynchroGetFile ", "").Trim().Trim((char)0); } }
private void DoReadBuff(IAsyncResult ar) { lock (obj) { try { StateObject so = (StateObject)ar.AsyncState; int ReadSize = ClientSocket.EndReceive(ar); if (ReadSize > 0) { ReviceBuffer Buffer = new ReviceBuffer(so.RevaceBuf, ClientSocket, so.Error); try { OnRevice(Buffer); SendComand("Success"); } catch { SendComand("Error"); } } StateObject reviceBuff = new StateObject(); ClientSocket.BeginReceive(reviceBuff.RevaceBuf, 0, StateObject.BufferSize, SocketFlags.None, out reviceBuff.Error, new AsyncCallback(DoReadBuff), reviceBuff); } catch (SocketException) { ClientSocket.Close(); } } }
protected void OnRevice(ReviceBuffer ReviceBuffer) { if (Revice != null) { Revice.Invoke(this, ReviceBuffer); } }
void ProcessMess(ReviceBuffer buff) { byte[] byt = buff.ReviceByte; string Mess = Encoding.ASCII.GetString(byt).Trim().Trim((char)'\0'); if (Mess.StartsWith("SynchroGetFile ", StringComparison.InvariantCultureIgnoreCase)) { string FileName = Mess.Replace("SynchroGetFile ", "").Trim().Trim((char)0); SynchroSendFile(FileName); } }
private void DoReadBuff(IAsyncResult ar) { StateObject so = (StateObject)ar.AsyncState; Socket Client = so.Client; try { int ReadSize = Client.EndReceive(ar); if (ReadSize > 0) { ReviceBuffer Buffer = new ReviceBuffer(so.RevaceBuf, Client, so.Error); ProcessMess(Buffer); } so.RevaceBuf = null; so.RevaceBuf = new byte[StateObject.BufferSize]; } catch (SocketException) { Client.Close(); } }
private void DoReadBuff(IAsyncResult ar) { StateObject so = (StateObject)ar.AsyncState; Socket Client = so.Client; try { int ReadSize = Client.EndReceive(ar); if (ReadSize > 0) { ReviceBuffer Buffer = new ReviceBuffer(so.RevaceBuf, Client, so.Error); ProcessMess(Buffer); } so.RevaceBuf = null; so.RevaceBuf = new byte[StateObject.BufferSize]; resultIAsync = Client.BeginReceive(so.RevaceBuf, 0, StateObject.BufferSize, SocketFlags.None, out so.Error, new AsyncCallback(DoReadBuff), so); } catch (SocketException err) { if (err.ErrorCode == 10054) //客户端退出 { Client.Close(); } else if (err.ErrorCode == 10053) //服务器主动断开连接 { Client.Close(); } else if (err.ErrorCode == 10060) //服务器主动断开连接 { Client.Close(); } else { Client.Close(); } } catch (Exception err) { } }