ESAD
2008-07-29, 02:28:21
Ich versuche mit .net und c# selbsterstellte pakete zu definieren und zu versenden.
das problem scheint zu sein dass MS seit SP2 versucht eben dies zu blockieren.
nun habe ich mir hald gedacht dass ich win xp pro Sp0 in einer vm aufsetzte (was laut meinen suchorgien ja dieses problem nicht hat)
nur bekomme ich dort auch den selben fehler wie unter win xp pro sp3.System.Net.Sockets.SocketException: Ein Blockierungsvorgang wurde durch einen Aufruf von WSACancelBlockingCall unterbrochen
bei System.Net.Sockets.Socket.SendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP)
bei System.Net.Sockets.Socket.SendTo(Byte[] buffer, EndPoint remoteEP)
bei test.Code.Senden.senden(IP IP_Paket) in D:\Eigene Dateien\Visual Studio 2008\Projects\test\test\Code\Senden.cs:Zeile 2
3.
Der Code zum senden ist folgender:
EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Broadcast, 67);
Socket sok = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Raw, ProtocolType.IP);
sok.Blocking = false;
sok.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
sok.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
Byte[] temp = Arrays.ArraysVereinen(IP_Paket);
sok.SendTo(temp,remoteEndPoint);
jemand ne idee?
das problem scheint zu sein dass MS seit SP2 versucht eben dies zu blockieren.
nun habe ich mir hald gedacht dass ich win xp pro Sp0 in einer vm aufsetzte (was laut meinen suchorgien ja dieses problem nicht hat)
nur bekomme ich dort auch den selben fehler wie unter win xp pro sp3.System.Net.Sockets.SocketException: Ein Blockierungsvorgang wurde durch einen Aufruf von WSACancelBlockingCall unterbrochen
bei System.Net.Sockets.Socket.SendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP)
bei System.Net.Sockets.Socket.SendTo(Byte[] buffer, EndPoint remoteEP)
bei test.Code.Senden.senden(IP IP_Paket) in D:\Eigene Dateien\Visual Studio 2008\Projects\test\test\Code\Senden.cs:Zeile 2
3.
Der Code zum senden ist folgender:
EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Broadcast, 67);
Socket sok = new Socket(AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Raw, ProtocolType.IP);
sok.Blocking = false;
sok.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
sok.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
Byte[] temp = Arrays.ArraysVereinen(IP_Paket);
sok.SendTo(temp,remoteEndPoint);
jemand ne idee?