【发布时间】:2015-11-13 21:21:31
【问题描述】:
在我的 C# 程序中接收给定的 udp 数据包时遇到问题。
有问题的代码如下:
//create transport
m_conn = new UdpClient(new IPEndPoint(m_interface_ip, 0));
m_conn.DontFragment = true;
m_conn.EnableBroadcast = true;
m_conn.Connect(new IPEndPoint(IPAddress.Parse(destination_ip), m_port));
m_conn.BeginReceive(new AsyncCallback(OnDataReceived), m_conn);
//create packet
//...
//send
m_conn.Send(buffer, length);
OnDataReceived 函数只是一个带有断点的空函数。
我已将防火墙和程序禁用到“允许列表”。
可以在 Wireshark 中看到“请求”和“响应”。请参阅附加的 pcap 文件。数据包似乎是有效的。该设备是经过认证的 Profinet 设备(以防万一)。
但我似乎无法将“响应”吸收到我的 OnDataReceived 函数中。
我错过了一些基本的东西吗?也许 udp/ip 标头有什么不寻常的地方?
【问题讨论】: