Exemple #1
0
        static void Main(string[] args)
        {
            startup();
            NetIncomingMessage msg;
            while (true)
            {

                foreach (GameObj obj in ObjList)
                {
                    obj.onUpdate(0.03333f);

                }

                while ((msg = server.ReadMessage()) != null)
                {
                    switch (msg.MessageType)
                    {

                        case NetIncomingMessageType.Data:
                            Console.WriteLine(msg.ToString() + msg.SenderConnection.ToString());
                            InputPacket dat = new InputPacket();
                            XmlSerializer bin = new XmlSerializer(dat.GetType());
                            var daat = (string)msg.ReadString();

                            StringReader read = new StringReader(daat);

                            dat = (InputPacket)bin.Deserialize(read);
                            foreach (ConClient cl in ClientList)
                            {
                                if (msg.SenderConnection == cl.con)
                                {
                                    cl.LastInput = dat;
                                    break;
                                }

                            }

                            Console.WriteLine(daat);
                            //str.Write(, 0, msg.Data.Length);
                            break;
                        case NetIncomingMessageType.ConnectionApproval:
                            msg.SenderConnection.Approve();
                            //  NetOutgoingMessage msgs=server.CreateMessage();
                            ConClient c = new ConClient();
                            c.id = clientidc;
                            c.con = msg.SenderConnection;
                            ClientList.Add(c);
                            Pobj po = new Pobj(c);
                            po.Sprite = "test";
                            ObjList.Add(po);
                            //msgs.Write(clientidc);

                            //server.SendMessage(msgs, msg.SenderConnection, NetDeliveryMethod.Unreliable);
                            clientidc++;

                            break;
                        default:
                            break;
                    }

                    //(string) bin.Deserialize(str);

                }

                DataPacket p= new DataPacket();
                foreach (GameObj va in ObjList)
                {
                    p.addGameObj(va);

                }

                foreach (ConClient va in ClientList)
                {

                    NetOutgoingMessage msgs = server.CreateMessage();
                    XmlSerializer s = new XmlSerializer(p.GetType());
                      using (var stream = new StringWriter())
            {
                s.Serialize(stream, p);
                var str = stream.ToString();

                msgs.Write(str);
                Console.WriteLine("sending: " + str+"size in bits: "+msgs.LengthBits);
                server.SendMessage(msgs, va.con, NetDeliveryMethod.UnreliableSequenced);

                      }

                }

            }
        }
Exemple #2
0
 public Pobj(ConClient c)
 {
     tran = new Transform();
     client = c;
 }