예제 #1
0
 public virtual void Listen(NetifConfiguration configuration)
 {
     if (configuration == null)
     {
         throw new ArgumentNullException(nameof(configuration));
     }
     if (configuration.Address == null)
     {
         throw new ArgumentNullException("The network interface device address is not allowed to be null");
     }
     if (configuration.DnsAddress1 == null)
     {
         throw new ArgumentNullException("The network interface device dns address 1 is not allowed to be null");
     }
     if (configuration.DnsAddress2 == null)
     {
         throw new ArgumentNullException("The network interface device dns address 2 is not allowed to be null");
     }
     if (configuration.GatewayAddress == null)
     {
         throw new ArgumentNullException("The network interface device gateway address is not allowed to be null");
     }
     if (configuration.SubnetMask == null)
     {
         throw new ArgumentNullException("The network interface device subnet mask is not allowed to be null");
     }
     StartNetifInformation(configuration);
     ListenNetifLevel3Input((buffer, length) =>
     {
         IPFrame ip = IPv4.Parse(new BufferSegment(new BufferSegment(buffer, length).ToArray()));
         if (ip != null)
         {
             IPv4.Input(ip);
         }
     });
 }