在c#中通过tcp套接字解码二进制文件?

时间:2015-01-27 15:01:10

标签: c# sockets tcp binary tcpclient

我有几个linux路由器设置可以嗅探附近的流量。他们打开套接字以便通过tcp连接应用程序,通过套接字数据以二进制流式传输。

我已经构建了一个简单的应用程序来检查数据是否正在接收,但它是否已经过时了。好像二进制文件没有被正确解码。有没有人有任何线索?

        try
        {
            TcpClient ourMagicClient = new TcpClient();
            ourMagicClient.Connect("192.168.0.101", Port);
            NetworkStream ourStream = ourMagicClient.GetStream();
            byte[] data = new byte[ourMagicClient.ReceiveBufferSize];
            int offset = 0;

            for (int i = 0; i < 20; i++)
            {
                int bytesRead = ourStream.Read(data, 0, System.Convert.ToInt32(ourMagicClient.ReceiveBufferSize));
                output += Encoding.ASCII.GetString(data, 0, bytesRead);

                Console.WriteLine(output);
                //Console.WriteLine(encoding.); 
                Console.WriteLine("\n");
                offset = bytesRead;
            }

            System.IO.File.WriteAllText(@"C:\Users\qweik_000\Desktop\WriteText.txt", output, Encoding.UTF8);

            Console.WriteLine("Press enter to close...");
            Console.ReadLine();
        }
        catch (Exception e)
        {
            Console.WriteLine("Error : " + e.Message);
            Console.WriteLine("Error : " + e.StackTrace);
            Console.ReadLine();
        }

运行时我在控制台应用中看到的内容:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以在有效的ASCII范围内(即0x20到0x7f)查找字节的字符串(一行中的某些字节)并提取并显示这个&#34;可读文本&#34;作为一个开始...