-2

私は自分のプログラムでめったに発生しないこのバグに頭を悩ませていましたが、今では自分のコードに関係のないもの、または少なくともそれが私の考えです。

byte[] dataBuffer = new byte[512];
IPEndPoint f = new IPEndPoint(IPAddress.Parse(packet.ipAddres), SNMP_PORT);
socket.SendTo(packet.GetBytes(), f);
IPEndPoint sender = new IPEndPoint(IPAddress.Parse(packet.ipAddres), 0);
EndPoint senderRemote = (EndPoint)sender;
socket.ReceiveFrom(dataBuffer, ref senderRemote);

変数「dataBuffer」の Wireshark パケット ダンプと Visual Studio ダンプが一致しない、スクリーンショット

Wireshark は期待どおりの応答を返します。Visual Studio、または私のコードはそうではありません。では、これはどのように可能ですか?.NET ソケット オブジェクトを正しく使用していませんか?

4

2 に答える 2

0

同じだと思います。Wireshark で最初に選択されたバイトは、Visual Studio のインデックス [27] に対応します。数値を 16 進形式で表示するように Visual Studio を切り替えると、より明確になります。

于 2012-10-15T07:19:15.780 に答える
0

スイッチのリモート SNMP ソフトウェアに問題があることがわかりました。1 つの GetNextRequestPDU をスイッチに送信すると、1 つの応答パケットが送信されます。しかし、この特定のスイッチが同じ応答パケットを 10 回送信することがあります。これにより、ソケットは、実際に「正しい」パケットを確認する前に、同じパケットを 10 回処理する必要があります。これは、wireshark でパケットが表示される前に重複した応答が発生したため、wireshark ダンプには表示されませんでした。

于 2012-10-15T07:27:33.723 に答える