[英]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.