Ejemplo n.º 1
0
        static void RunCapture()
        {
            Console.WriteLine("Serial port: " + portName);
            Console.WriteLine("Baud rate: " + baudRate + " Bd");
            Console.WriteLine("Parity: " + parity);
            Console.WriteLine("Stopbits: " + stopbits);
            Console.WriteLine("Frame gap: " + frameGapMs + " ms");
            Console.WriteLine("DLT: " + dlt);
            Console.WriteLine("Output file: " + outputFile);
            Console.WriteLine();
            Console.WriteLine("Starting capture (press Ctrl+c to stop)");


            using (var capture = new CaptureSerial(portName, baudRate, parity, stopbits, frameGapMs))
            {
                if (pipe && Environment.OSVersion.Platform != PlatformID.Unix)
                {
                    using (BinaryWriter writer = new BinaryWriter(new NamedPipeServerStream(outputFile, PipeDirection.Out)))
                    {
                        Capture(capture, writer);
                    }
                }
                else
                {
                    using (BinaryWriter writer = new BinaryWriter(File.Open(outputFile, FileMode.Create)))
                    {
                        Capture(capture, writer);
                    }
                }
            }
        }
Ejemplo n.º 2
0
 static void Capture(CaptureSerial capture, BinaryWriter writer)
 {
     Pcap.Header.Write(writer, dlt);
     writer.Flush();
     while (true)
     {
         var packet = capture.CapturePacket();
         if (packet != null)
         {
             packet.Write(writer);
             writer.Flush();
         }
     }
 }