Exemplo n.º 1
0
        private void OnRecive(TCPSocketToken token, RecivePacket packet)
        {
            TCPSession sendList = clients.GetOrAdd(token, (TCPSocketToken tk) =>
            {
                TCPSession session = new TCPSession();
                session.SetToken(tk);
                return(session);
            });

            /*
             * string str = Encoding.Default.GetString(pack.Buffer, pack.HeadLen, pack.Length - pack.HeadLen);
             * if (str != StringNetPacket.TestStr)
             * {
             *  Console.WriteLine("server recive error !");
             * }
             */
            for (int i = 0; i < packet.Length - packet.HeadLen; ++i)
            {
                if (packet.Buffer[packet.HeadLen + i] != (byte)i)
                {
                    Console.WriteLine("!!!");
                }
            }
            StringNetPacket pongPacket = new StringNetPacket(1024);

            token.Session.SendPacket(pongPacket);
        }
Exemplo n.º 2
0
 private void OnRecive(TCPSocketToken token, RecivePacket packet)
 {
     /*
      * string str = Encoding.Default.GetString(packet.Buffer, packet.HeadLen, packet.Length - packet.HeadLen);
      * if (str != StringNetPacket.TestStr)
      * {
      *  Console.WriteLine("client recive error!" + str);
      * }
      */
     for (int i = 0; i < packet.Length - packet.HeadLen; ++i)
     {
         if (packet.Buffer[packet.HeadLen + i] != (byte)i)
         {
             Console.WriteLine("!!!");
         }
     }
     SendPack(token.Session);
 }
Exemplo n.º 3
0
 private void OnClose(object sender, TCPSocketToken token)
 {
     lock (Sessions)
     {
         var session = Sessions.FirstOrDefault(obj => obj.Token == token);
         if (session != null)
         {
             SendInfor infor = session.UserData as SendInfor;
             if (infor.SendNum < 100)
             {
                 Console.WriteLine(string.Format("On Close: {0}, {1}, {2}", infor.Index, session.PackCount, infor.SendNum));
             }
         }
         count++;
         Sessions.Remove(session);
         //Console.WriteLine(count);
         if (count == MaxNum)
         {
             waiteEvent.Set();
         }
     }
 }
Exemplo n.º 4
0
        private void CloseToken(object sender, TCPSocketToken token)
        {
            TCPSession sesion;

            clients.TryRemove(token, out sesion);
        }