我的代碼工作從Any good .net packet sniffers around?.NET數據包嗅探:試圖創建插座會導致訪問錯誤
在項目和一個獨立的,我嘗試使用下面的行創建一個套接字:
mainSocket = new Socket(AddressFamily.InterNetwork,
SocketType.Raw, ProtocolType.IP);
在那行,我立即得到一個異常
System.Net.Sockets.SocketException: An attempt was made to access a socket
in a way forbidden by its access permissions
我不認爲這是帳戶權限問題。我可以在這個帳戶下運行Fiddler就好了。
這是打開傳出數據包偵聽器的正確方法嗎?如果是這樣,我需要做些什麼來避免權限錯誤?
更新:.NET 4.0的Windows 7家庭高級版
如果我在Linqpad中運行代碼,則會得到相同的錯誤。但是,如果我將Linqpad作爲「以管理員身份運行」啓動,則可以毫無問題地執行代碼。不確定Fiddler是怎麼做的,但它似乎是一些許可相關的問題。 –
如果使用SocketType.Stream而不是Raw,它會工作嗎? – EricLaw
@Eric,是的。 –