public void SendData(int Type, string Name, byte[] Content, DateTime date, string fileName) { if (mSocket == null) { throw new ArgumentNullException("连接不存在"); } if (Content == null) { return; } SocketEntity my = new SocketEntity(Type, Name, Content, date, fileName); byte[] SendData = my.GetBytes(); mSocket.BeginSend(SendData, 0, SendData.Length, 0, new AsyncCallback(SendCallBack), mSocket); }
private void ReceiveCallback(IAsyncResult ar) { try { StateObject state = ar.AsyncState as StateObject; //读取数据 int bytesRead = mSocket.EndReceive(ar); if (bytesRead > 0) { state.sb.Append(UTF8Encoding.UTF8.GetString(state.buffer, 0, bytesRead)); string sb = state.sb.ToString(); if (sb.Substring(sb.Length - 1, 1) == EndChar) { //接收完成 //激发事件 state = new StateObject(); state.workSocket = mSocket; } mSocket.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state); SocketEntity entity = SocketEntity.GetSocketEntity(state.buffer); if (OnByteDataReceived != null) { OnByteDataReceived(id, entity); } } } catch (SocketException se) { if (OnClosed != null) { OnClosed(ID, se.Message); } } catch (Exception e) { throw new ApplicationException(e.Message); } }