Beispiel #1
0
        private void HandleReceivedData(
            byte[] _bytes)
        {
            Message l_oMessage = (Message)ObjectByteArrayConverter.ByteArrayToObject(_bytes);

            if (l_oMessage is Token)
            {
                this.HandleReceivedToken((Token)l_oMessage);
            }
            else if (l_oMessage is Packet)
            {
                Packet l_oReceivedPckt = (Packet)l_oMessage;
                string l_sReceivedData = l_oReceivedPckt.Data.ToString();

                // check if we are the message's destination
                if (IPAddress.IsLoopback(l_oReceivedPckt.IPDestination))
                {
                    this.HandleReceivedPacket(l_oReceivedPckt);
                }
                else
                {
                    /*
                     * TODO: Simulate errors if asked
                     */

                    // just forward the packet to the next host...
                    this.ForwardMessage(l_oReceivedPckt);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Sends data assynchronously through the provided socket
        /// </summary>
        private void SendData(
            Message _oPacket,
            Socket _socket)
        {
            try
            {
                SocketPacket l_oSockPacket = new SocketPacket(_socket);
                l_oSockPacket.DataBuffer = ObjectByteArrayConverter.ObjectToByteArray(_oPacket);

                _socket.BeginSendTo(
                    l_oSockPacket.DataBuffer,
                    0,
                    SocketPacket.BUFFER_SIZE,
                    SocketFlags.None,
                    this.m_ipOutgoingHost,
                    this.OnDataSent,
                    l_oSockPacket);
            }
            catch (SocketException se)
            {
                MessageBox.Show(se.Message);
            }
        }