У меня есть несколько маршрутизаторов linux, которые обнюхивают около трафика. У них есть сокеты, открытые для того, чтобы приложение было подключено через tcp, через данные сокетов передается в двоичном формате.Декодирование двоичных данных, полученных через tcp-сокет в C#?
Я создал простое приложение, чтобы проверить, получены ли данные, и, тем не менее, оно является жирным. Кажется, что двоичный файл не декодирован должным образом. Кто-нибудь знает?
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();
}
То, что я вижу в моем консольном приложении на запустить его:
Если получены двоичные данные, почему вы преобразовываете их в строку? Что вы ожидаете увидеть? –
sniffed traffic имеет тенденцию быть нечитаемыми двоичными данными ... Спросите этих экспертов из NSA, как это сделать из этого ... – DrKoch
@ Qweick вы уверены, что другая сторона отправляет вам длинную строку, а не какой-то объект? –