private void ReceiveCallback(IAsyncResult ar) { try { StateObject state = (StateObject)ar.AsyncState; Socket client = state.workSocket; int bytesRead = client.EndReceive(ar); if (bytesRead > 0) { if (_needPkgParse) { PkgManager.GetInstance().parseBytes(state.buffer, _receiveBytesCallback); } else { _receiveBytesCallback(state.buffer); } StateObject newstate = new StateObject(); newstate.workSocket = client; client.BeginReceive(newstate.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), newstate); } else { if (client.Available == 0) { Console.WriteLine("从服务器{0}断开,请重新连接!", _name); } } } catch (Exception e) { Console.WriteLine("receive data error :{0}", e.ToString()); } }
public static PkgManager GetInstance() { if (_pkgManager == null) { _pkgManager = new PkgManager(); } return(_pkgManager); }