Esempio n. 1
0
        /// <summary>
        /// Send a UDP packet to a destination device
        /// </summary>
        /// <param name="dest">IP address of destination</param>
        /// <param name="srcPort">Source port</param>
        /// <param name="destPort">Destination port to send data to</param>
        /// <param name="data">Data to be sent</param>
        public static void SendUDP(IPv4Address dest, UInt16 srcPort, UInt16 destPort, byte[] data)
        {
            IPv4Address source = FindNetwork(dest);

            if (source == null)
            {
                Console.WriteLine("Destination Network Unreachable!!");
                return;
            }
            UDP.UDPPacket outgoing = new UDP.UDPPacket(source, dest, srcPort, destPort, data);
            TCPIP.IPv4OutgoingBuffer.AddPacket(outgoing);
        }
Esempio n. 2
0
        internal static IPv4Address FindRoute(IPv4Address destIP)
        {
            for (int c = 0; c < ipConfigs.Count; c++)
            {
                if (ipConfigs[c].DefaultGateway.CompareTo(IPv4Address.Zero) != 0)
                {
                    return(ipConfigs[c].DefaultGateway);
                }
            }

            return(null);
        }
Esempio n. 3
0
        /// <summary>
        /// Can be used to test pinging to a network address from Cosmos
        /// </summary>
        /// <param name="dest">IP Address of destination</param>
        public static void Ping(IPv4Address dest)
        {
            IPv4Address source = FindNetwork(dest);

            if (source == null)
            {
                Console.WriteLine("Destination Network Unreachable!!");
                return;
            }

            ICMP.ICMPEchoRequest request = new ICMP.ICMPEchoRequest(source, dest, 0x10, 1);
            TCPIP.IPv4OutgoingBuffer.AddPacket(request);
        }
Esempio n. 4
0
        internal static bool IsLocalAddress(IPv4Address destIP)
        {
            for (int c = 0; c < ipConfigs.Count; c++)
            {
                if ((ipConfigs[c].IPAddress.To32BitNumber() & ipConfigs[c].SubnetMask.To32BitNumber()) ==
                    (destIP.To32BitNumber() & ipConfigs[c].SubnetMask.To32BitNumber()))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 5
0
        public TcpClient(IPv4Address dest, UInt16 port)
        {
            IPv4Address source = TCPIPStack.FindNetwork(dest);

            if (source == null)
            {
                throw new ArgumentException("Destination host unreachable", "dest");
            }

            this.connection        = new TCPConnection(dest, port, source, NextLocalPort++, 0x5656, TCPConnection.State.SYN_SENT);
            this.connection.client = this;

            TCPIPStack.tcpSockets.Add(connection);

            TCPPacket packet = new TCPPacket(connection, connection.LocalSequenceNumber, 0, 0x02, 8192);

            TCPIP.IPv4OutgoingBuffer.AddPacket(packet);
        }
Esempio n. 6
0
        internal static IPv4Address FindNetwork(IPv4Address destIP)
        {
            IPv4Address default_gw = null;

            for (int c = 0; c < ipConfigs.Count; c++)
            {
                if ((ipConfigs[c].IPAddress.To32BitNumber() & ipConfigs[c].SubnetMask.To32BitNumber()) ==
                    (destIP.To32BitNumber() & ipConfigs[c].SubnetMask.To32BitNumber()))
                {
                    return(ipConfigs[c].IPAddress);
                }
                if ((default_gw == null) && (ipConfigs[c].DefaultGateway.CompareTo(IPv4Address.Zero) != 0))
                {
                    default_gw = ipConfigs[c].IPAddress;
                }
            }

            return(default_gw);
        }
Esempio n. 7
0
 internal static HW.Network.NetworkDevice FindInterface(IPv4Address sourceIP)
 {
     return(addressMap[sourceIP.To32BitNumber()]);
 }
Esempio n. 8
0
 public IPv4EndPoint(IPv4Address addr, UInt16 port)
 {
     this.ipAddr = addr;
     this.port   = port;
 }
Esempio n. 9
0
 public IPv4Config(IPv4Address ip, IPv4Address subnet, IPv4Address gw)
 {
     this.address        = ip;
     this.subnetMask     = subnet;
     this.defaultGateway = gw;
 }
Esempio n. 10
0
 public IPv4Config(IPv4Address ip, IPv4Address subnet)
     : this(ip, subnet, IPv4Address.Zero)
 {
 }