SendMessage() public method

Send a message to a specific connection
public SendMessage ( NetOutgoingMessage msg, NetConnection recipient, NetDeliveryMethod method ) : NetSendResult
msg NetOutgoingMessage The message to send
recipient NetConnection The recipient connection
method NetDeliveryMethod How to deliver the message
return NetSendResult
Beispiel #1
0
        void checkToCheckup(GameTime gameTime)
        {
            if (iAmServer)
            {
                return;
            }

            timeSinceLastCheckup += (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (timeSinceLastCheckup >= checkupDelay)
            {
                timeSinceLastCheckup = 0f;

                NetOutgoingMessage msg = netPeer.CreateMessage();
                msg.Write(MessageID.CHECKUP);
                netPeer.SendMessage(msg, connection, NetDeliveryMethod.ReliableUnordered);
            }
        }
 /// <summary>
 /// Send a message to this remote connection
 /// </summary>
 /// <param name="msg">The message to send</param>
 /// <param name="method">How to deliver the message</param>
 /// <param name="sequenceChannel">Sequence channel within the delivery method</param>
 public NetSendResult SendMessage(NetOutgoingMessage msg, NetDeliveryMethod method, int sequenceChannel)
 {
     return(m_peer.SendMessage(msg, this, method, sequenceChannel));
 }
Beispiel #3
0
        public void checkForStatusUpdate(NetPeer netPeer, NetConnection connection, int team)
        {
            if (AmountChanged && ((team == Player.Me.Team && timeSinceStatusUpdate >= statusUpdateDelay) || Depleted))
            {
                timeSinceStatusUpdate = 0f;
                AmountChanged = false;

                NetOutgoingMessage msg = netPeer.CreateMessage();
                msg.Write(MessageID.RESOURCE_STATUS_UPDATE);
                msg.Write(ID);
                msg.Write((short)Amount);
                netPeer.SendMessage(msg, connection, NetDeliveryMethod.ReliableOrdered);
            }
        }
Beispiel #4
0
        public void CheckForStatusUpdate(GameTime gameTime, NetPeer netPeer, NetConnection connection)
        {
            timeSinceStatusUpdate += (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (timeSinceStatusUpdate >= statusUpdateDelay)
            {
                timeSinceStatusUpdate = 0f;

                if (Team == Player.Me.Team)
                {
                    NetOutgoingMessage msg = netPeer.CreateMessage();
                    msg.Write(MessageID.UNIT_STATUS_UPDATE);
                    msg.Write(ID);
                    msg.Write(Team);
                    msg.Write((short)Hp);
                    msg.Write(centerPoint.X);
                    msg.Write(centerPoint.Y);
                    msg.Write(Rotation);
                    msg.Write(IsIdle);

                    // send current command ID, -1 if none
                    if (Commands.Count > 0)
                        msg.Write(Commands[0].ID);
                    else
                        msg.Write((short)-1);

                    // send cargoAmount, 0 if not worker
                    WorkerNublet worker = this as WorkerNublet;
                    if (worker != null)
                        msg.Write(worker.CargoAmount);
                    else
                        msg.Write((short)0);

                    netPeer.SendMessage(msg, connection, NetDeliveryMethod.ReliableOrdered);
                }
                else if (HpChanged)
                {
                    HpChanged = false;

                    NetOutgoingMessage msg = netPeer.CreateMessage();
                    msg.Write(MessageID.UNIT_HP_UPDATE);
                    msg.Write(ID);
                    msg.Write(Team);
                    msg.Write((short)Hp);
                    netPeer.SendMessage(msg, connection, NetDeliveryMethod.ReliableOrdered);
                }
            }
        }
Beispiel #5
0
 private void Send(NetPeer peer, NetConnection destination, NetDeliveryMethod method)
 {
     NetOutgoingMessage nom = peer.CreateMessage(InitialMessageSize());
     nom.Write(this.GetType().FullName);
     this.WriteData(nom);
     peer.SendMessage(nom, destination, method);
 }
Beispiel #6
0
 public static void SendMessage(NetPeer peer, NetworkMessageType networkMessageType, int data, NetConnection recipient)
 {
     NetOutgoingMessage message = peer.CreateMessage();
     message.Write((byte)networkMessageType);
     message.Write(data, 32);
     peer.SendMessage(message, recipient, NetDeliveryMethod.ReliableUnordered);
 }
Beispiel #7
0
        public static void SendMCS()
        {
            Console.WriteLine("Enter Port: ");
            int port = int.Parse(Console.ReadLine());

            NetPeerConfiguration config = new NetPeerConfiguration("InduZtry");
            config.Port = port;
            config.EnableMessageType(NetIncomingMessageType.DiscoveryRequest);
            config.EnableMessageType(NetIncomingMessageType.Data);
            //config.EnableUPnP = true;
            server = new NetPeer(config);
            server.Start();
            //Console.WriteLine(server.UPnP.Status);
            //server.UPnP.ForwardPort(port, "InduZtry");
            //Console.WriteLine(server.UPnP.Status);
            //Console.WriteLine("UPnP IP: " + server.UPnP.GetExternalIP());

            Thread t = new Thread(RecvMCS);
            t.IsBackground = true;
            t.Start();

            message = "NULL";

            while(true) {
                Thread.Sleep(10);
                if(recipient != null) {
                    NetOutgoingMessage sendMsg = server.CreateMessage();
                    sendMsg.Write(message);
                    server.SendMessage(sendMsg, recipient, NetDeliveryMethod.ReliableOrdered);
                }
            }
        }
Beispiel #8
0
        public void CheckForStatusUpdate(GameTime gameTime, NetPeer netPeer, NetConnection connection)
        {
            timeSinceStatusUpdate += (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (HpChanged && timeSinceStatusUpdate >= statusUpdateDelay)
            {
                timeSinceStatusUpdate = 0f;
                HpChanged = false;

                NetOutgoingMessage msg = netPeer.CreateMessage();
                msg.Write(MessageID.STRUCTURE_STATUS_UPDATE);
                msg.Write(ID);
                msg.Write(Team);
                msg.Write((short)Hp);
                netPeer.SendMessage(msg, connection, NetDeliveryMethod.ReliableOrdered);
            }
        }