Exemple #1
0
        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());
            }
        }
Exemple #2
0
 public static PkgManager GetInstance()
 {
     if (_pkgManager == null)
     {
         _pkgManager = new PkgManager();
     }
     return(_pkgManager);
 }