繁体   English   中英

解码在C#中通过TCP套接字收到的二进制文件?

[英]Decoding binary received over tcp socket in c#?

我有几个嗅探附近流量的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();
        }

运行后在控制台应用程序中看到的内容:

在此处输入图片说明

您可能会寻找有效ASCII范围(即0x20到0x7f)中的字节字符串(连续的一些字节),并提取并显示此“可读文本”作为开始...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM