我有一个来自 MSDN 网站的代码示例,用于创建 UDP 侦听器/客户端,因为我尝试从防火墙接收 IPFIX/Netflow 数据,然后使用收到的数据。
该代码确实有效并开始接收数据,但它的行话(见下文)所以我想我没有正确解码它。
有谁知道我需要做什么才能以正确的格式获取数据?
我正在使用的代码是:
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;
}
}
我得到的数据是:
?M?▼? '$▬+? ☺☺ ?M?▼???k`
&??_?07???Q??E?U?j ♥ ☻
♠ P ♣ x ♣ ► ♥ → ♦
☼?M?▼?M?▼? 1♠►?
? ☺
提前致谢,
James
您假设接收到的数据是 ASCII 格式,但实际上它的结构如下:See here https://www.rfc-editor.org/rfc/rfc5101。这些消息有一个标题和数据集 https://www.rfc-editor.org/rfc/rfc5101#section-3等等。你需要根据标准来评估数据,而不仅仅是直接的文本转换。
这里以消息头格式为例。文本转换根本不会对此做任何事情:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)