2013-05-07 2 views
0

Я разрабатываю приложение Port Knocking с MonoDevelop на Linux. Серверное приложение использует IPTables чтобы открыть/закрыть определенный порт с помощью команды:Port Knocking with Mono On Linux

iptables -A INPUT -j DROP 

он успешно применяет определенные правила, такие как:

iptables -A INPUT -p udp --dport 606:610 -j LOG 

Затем я создал клиентское приложение UdpClient отправить стучит просьбой об

private static UdpClient udp; 

public static void sendmessage (string message, string host, short port) 
     { 
      try 
      { 
       IPAddress ip=IPAddress.Parse(host); 
       if(udp==null) 
        udp=new UdpClient(); 

       byte[] b=ASCIIEncoding.ASCII.GetBytes(message); 
      udp.Send(b,b.Length,new IPEndPoint(ip,port));    
     } 

     catch (Exception exc) 
     { 
      throw exc; 
     } 
    } 

Но это клиентское приложение выходит из строя, кажется, что оно поднимает исключение, когда сервер закрывает все порты.

Есть ли какое-либо решение для отправки пакета данных, который не заботится о том, закрывает или закрывает ли сервер какой-либо порт?

ответ

0

Попробуйте установить минимальный тайм-аут и проигнорировать исключение вместо того, чтобы его выбрасывать