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); } } } }
public Pobj(ConClient c) { tran = new Transform(); client = c; }