我有一个来自MSDN网站的代码示例,当我试图从防火墙接收IPFIX/Netflow数据时,可以创建一个UDP侦听器/客户端,然后处理接收到的数据。代码确实工作,并开始构思数据,但它的行话(见下文),所以我想我没有正确地解码它。
有人知道我需要做些什么才能以正确的格式获得数据吗?
我使用的代码是:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class ConsoleApplication2
{
private const int listenPort = 2055;
private static void StartListener()
{
bool done = false;
UdpClient listener = new UdpClient(listenPort);
IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
try
{
while (!done)
{
Console.WriteLine("Waiting for broadcast");
byte[] bytes = listener.Receive(ref groupEP);
Console.WriteLine("Received broadcast from {0} :\n {1}\n",
groupEP.ToString(),
Encoding.ASCII.GetString(bytes, 0, bytes.Length));
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
listener.Close();
}
}
public static int Main()
{
StartListener();
return 0;
}
}我得到的数据是:
$▬+?☺☺?k‘&??_?07????Q??E?U?j♥☻ ♠P♣x♣►♥→♦☼?m?m?1♠►? ?☺
提前谢谢你,
詹姆斯
发布于 2011-04-14 16:36:27
假设所接收的数据是ASCII格式的,而实际上它是结构化的:看这里。消息有一个报头和数据集等等。您需要根据标准来评估数据,而不仅仅是直接的文本转换。
例如,这里是消息头格式。文本转换根本不会对此做任何事情:
3.1.消息头格式
The format of the IPFIX Message Header is shown in Figure F.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version Number | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Export Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Observation Domain ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+https://stackoverflow.com/questions/5666413
复制相似问题