/// <summary> /// UDP handler. /// </summary> /// <param name="packetData">Packet data.</param> /// <exception cref="OverflowException">Thrown if UDP_Data array length is greater than Int32.MaxValue.</exception> /// <exception cref="sysIO.IOException">Thrown on IO error.</exception> internal static void UDPHandler(byte[] packetData) { UDPPacket udp_packet = new UDPPacket(packetData); NetworkStack.debugger.Send("Received UDP packet from " + udp_packet.SourceIP.ToString() + ":" + udp_packet.SourcePort.ToString()); if (CheckCRC(udp_packet)) { if (udp_packet.SourcePort == 68) { //Network.DHCP.DHCPPacket.DHCPHandler(packetData); return; } NetworkStack.debugger.Send("Content: " + Encoding.ASCII.GetString(udp_packet.UDP_Data)); UdpClient receiver = UdpClient.Client(udp_packet.DestinationPort); if (receiver != null) { receiver.receiveData(udp_packet); } } else { NetworkStack.debugger.Send("But checksum incorrect... Packet Passed."); } }
internal static void DNSHandler(byte[] packetData) { DNSPacket dns_packet = new DNSPacket(packetData); DnsClient receiver = (DnsClient)UdpClient.Client(dns_packet.DestinationPort); if (receiver != null) { receiver.receiveData(dns_packet); } }
internal static void UDPHandler(byte[] packetData) { UDPPacket udp_packet = new UDPPacket(packetData); Sys.Console.WriteLine("Received UDP packet from " + udp_packet.SourceIP.ToString() + ":" + udp_packet.SourcePort.ToString()); UdpClient receiver = UdpClient.Client(udp_packet.DestinationPort); if (receiver != null) { Sys.Console.WriteLine("UDP Packet is for registered client"); receiver.receiveData(udp_packet); // DataReceived dlgt = udpClients[udp_packet.DestinationPort]; // if (dlgt != null) // { // dlgt(new IPv4EndPoint(udp_packet.SourceIP, udp_packet.SourcePort), udp_packet.UDP_Data); // } } }