コード例 #1
0
        public ByteBuffer getImageBuffer()
        {
            byte[]     files = FFactory.ReadFile(Share.USER_SAVE_PATH + "imgs/" + this.Image);
            ByteBuffer buf   = new ByteBuffer(-1, files.Length + 4);//125679

            buf.writeInt(files.Length);
            buf.writeBytes(files);
            return(buf);
        }
コード例 #2
0
        //用户登陆
        public void do1001(MessageNode node)
        {
            ClientNode client = node.socket;
            ByteBuffer buffer = node.buffer;

            string name = buffer.readString();

            if (g.ContansUser(name))
            {
                client.send(ConstomMessage.getError("该用户已在别处登陆,服务器拒绝登陆!"));
                return;
            }
            if (!FFactory.Exists(Share.USER_SAVE_PATH + name))
            {
                client.send(ConstomMessage.getError("用户名错误!"));
                return;
            }
            User   user = FFactory.ReadObject <User>(Share.USER_SAVE_PATH + name);
            string pwd  = buffer.readString();

            if (!user.Password.Equals(pwd))
            {
                client.send(ConstomMessage.getError("密码错误!"));
            }
            else
            {
                user.BindSocket(client);
                g.addUser(user);

                ByteBuffer buf = new ByteBuffer();
                buf.writeInt(Protcol.用户登陆);
                buf.writeString(user.UserName);
                buf.writeString(user.ChinaName);
                //debug.logln(user.Money, user.Duanwei, user.Image, user.Text);
                buf.writeInt(user.Money);
                buf.writeString(user.Duanwei);
                buf.writeString(user.Image);
                buf.writeString(user.Text);

                client.send(buf);


                GameHall.shareGameHall().addGameHall(user);

                //debug.logln(user.ChinaName + " 登陆成功");

                //user.ReadImageBuffer();//先把图片读出来
            }
        }
コード例 #3
0
        //注册
        public void do1002(MessageNode node)
        {
            ClientNode client = node.socket;
            ByteBuffer buff   = node.buffer;

            string name = buff.readString();

            if (g.ContansUser(name) || FFactory.Exists(Share.USER_SAVE_PATH + name))
            {
                //存在
                client.send(ConstomMessage.getError("用户名已存在"));
                client = null;
                return;
            }
            string chinaName = buff.readString();
            string sex       = buff.readString();
            int    age       = buff.readInt();
            string pwd       = buff.readString();

            User user = new User(name, chinaName, sex, age, pwd);
            //是否有图片上传
            int im = buff.readInt();

            if (im > 0)
            {
                string imgExt  = buff.readString();
                string imgName = name + this.getImageName() + imgExt;
                user.Image = imgName;
                ByteBuffer imgbs = buff.readBuffer();
                FFactory.SaveObject(Share.USER_SAVE_IMAGE_PATH + imgName, imgbs.getBuffer());
            }
            FFactory.SaveObject(Share.USER_SAVE_PATH + name, user);
            //g.addUser(user);

            debug.logln("用户注册成功 : " + name + " 密码: " + pwd);
            ByteBuffer buf = ByteBuffer.CreateByteBufferType(Protcol.用户注册);

            //buf.writeInt(Protcol.用户注册);
            //buf.writeInt(1);
            client.send(buf);
        }
コード例 #4
0
        public ByteBuffer RoomInfos(int roomId)
        {
            bool       isExt = false;
            ByteBuffer buf   = ByteBuffer.CreateByteBufferForLenth(100);

            buf.writeInt(Protcol.更新大厅某个房间信息);//6211
            Room r = rooms[roomId];

            //foreach (Room r in rms)
            {
                buf.writeInt(r.Roomid);
                buf.writeString(r.Roomname);
                buf.writeString(r.Password);
                User[] us = r.getUsers();
                buf.writeInt(us.Length);
                if (us.Length > 0)
                {
                    foreach (User u in us)
                    {
                        buf.writeString(u.ChinaName);
                        buf.writeInt(u.Image == null ? -1 : 1);
                        if (u.Image != null)
                        {
                            if (!isExt)
                            {
                                isExt = true;
                                buf.ExpansionCapacity(1000 * 1000 * us.Length + buf.Length);
                            }
                            byte[] files = FFactory.ReadFile(Share.USER_SAVE_PATH + "imgs/" + u.Image);
                            buf.writeInt(files.Length);
                            buf.writeBytes(files);
                        }
                    }
                }
            }
            return(buf);
        }