Beispiel #1
0
        static void DataOn(byte[] data, UserInfo userinfo)
        {
            //建立一个读取数据包的类 参数是数据包
            //这个类的功能很强大,可以读取数据包的数据,并可以把你发送过来的对象数据,转换对象引用

            ReadBytes read = new ReadBytes(data);

            int lengt; //数据包长度,用于验证数据包的完整性
            int cmd;   //数据包命令类型

            //注意这里一定要这样子写,这样子可以保证所有你要度的数据是完整的,如果读不出来 Raed方法会返回FALSE,从而避免了错误的数据导致崩溃
            if (read.ReadInt32(out lengt) && read.Length == lengt && read.ReadInt32(out cmd))
            {  //read.Read系列函数是不会产生异常的
                //根据命令读取数据包
                switch (cmd)
                {
                case 1000:
                    string msg = read.ReadString();
                    while (true)
                    {
                        BufferFormat buffer = new BufferFormat(1000);
                        buffer.AddItem(msg.ToString());
                        buffer.AddItem(new byte[8096]);
                        byte[] pdata = buffer.Finish();
                        server.Send(userinfo, pdata);
                    }

                    break;
                }
            }
        }
Beispiel #2
0
        public static void LogOn(SocketAsyncEventArgs e, string username, string password)
        {
            Console.WriteLine("UserName:{0} LogIn", username);

            //CHECK USER AND PASSWORD

            UserInfo user = new UserInfo()
            {
                UserName = username,
                PassWord = password,
                Asyn     = e,
                BuffPool = e.UserToken as ZYNetRingBufferPool
            };

            e.UserToken = user;

            UserList.Add(user);

            server.Send(e.AcceptSocket, ZYAutoBuffer.Call(1000, true)); //TRUE =LOGON OK ;FALSE=LOGON Fail
        }
Beispiel #3
0
        /// <summary>
        /// 数据包输入
        /// </summary>
        /// <param name="data">输入数据</param>
        /// <param name="socketAsync">该数据包的通讯SOCKET</param>
        static void BinaryInputHandler(byte[] data, SocketAsyncEventArgs socketAsync)
        {
            try
            {
                // server.SendData(socketAsync.AcceptSocket, data);
                server.Send(socketAsync.AcceptSocket, data);

                // socketAsync.AcceptSocket.Send(data);

                //AsyncSend tmp = socketAsync.UserToken as AsyncSend;

                //if (tmp != null)
                //{
                //    tmp.Send(data);
                //}
            }
            catch
            {
            }
        }