我試圖連接到多播組來接收一些UDP數據包。 我使用的代碼運行良好,我收到了數據包,之前我沒有遇到任何問題。但是現在有一個新的需求需要數據包通過需要看到多播加入消息的交換機。在它剛剛開始愚蠢的開關之前,這不成問題。IGMP加入消息給出錯誤的校驗和
加入多播組,我使用此代碼:
var LocalAddress = "228.12.12.27";
var LocalPort = 46715;
var LocalEndPoint = new IPEndPoint(IPAddress.Parse(LocalAddress), LocalPort);
var RxSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
RxSocket.Blocking = false;
RxSocket.ReceiveBufferSize = UInt16.MaxValue;
RxSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
RxSocket.Bind(new IPEndPoint(IPAddress.Any, LocalEndPoint.Port));
RxSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(LocalEndPoint.Address));
RxSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 50);
RxSocket.Close();
生成該IGMP的線加入消息是
RxSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(LocalEndPoint.Address));
以及IGMP加入消息發送出去。
但是,當我使用Wireshark監聽網絡時,發現IGMP消息的校驗和錯誤;
這是我的代碼或輸入問題嗎?或者還有別的嗎?