none
【VB.net2010】關於 Sniffer sample code 一問 RRS feed

  • 問題

  •  各位大大好
    關於sniffer的討論相當多
    小弟也真的是有看沒有懂
    好不容易找到一個簡易版本的
    其實小弟的需求只有【針對某一個port去擷取訊息】
    網路上找到的sample code
    http://big5.webasp.net/article/16/15343.htm

    因為小弟用的是2010
    程式出現以下錯誤
    請問這是哪方面的問題呢@@?

    Private Function SetSockoption() As Boolean
            Try
                sck.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, 1)
                Dim IN_() As Byte = {1, 0, 0, 0}
                Dim OUT_(4) As Byte
                Dim SIO_RCVALL As Long = &H98000001
                sck.IOControl(SIO_RCVALL, IN_, OUT_)
                If (BitConverter.ToInt32(OUT_, 0) <> 0) Then Return False
            Catch ex As SocketException
                Return False
            End Try
            Return True
        End Function

    錯誤 1 多載解析失敗,因為不需要縮小轉換的多載 'IOControl' 不存在,故無法呼叫:
        'Public Function IOControl(ioControlCode As System.Net.Sockets.IOControlCode, optionInValue() As Byte, optionOutValue() As Byte) As Integer': 與參數 'ioControlCode' 對應的引數從 'Long' 減少到 'System.Net.Sockets.IOControlCode'。
        'Public Function IOControl(ioControlCode As Integer, optionInValue() As Byte, optionOutValue() As Byte) As Integer': 與參數 'ioControlCode' 對應的引數從 'Long' 減少到 'Integer'。 C:\Users\Lee\AppData\Local\Temporary Projects\WindowsApplication1\Receiver.vb 80 13 WindowsApplication1

    2013年1月11日 上午 11:56

解答

  • IOControl 有兩個多載

    Socket.IOControl Method (Int32, Byte[], Byte[])

    Socket.IOControl Method (IOControlCode, Byte[], Byte[])

    Int32 的最大值不過是 2,147,483,647 , 轉成 16 進位就是 0x7FFFFFFF

    你傳個  0X98000001 當然是超過 Int32 啊 ..


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年1月11日 下午 02:52
    版主
  • http://social.msdn.microsoft.com/forums/zh-TW/230/thread/83a6d495-35b8-4fc8-ad03-327d86702cc7

    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2013年1月11日 下午 06:04

所有回覆

  • IOControl 有兩個多載

    Socket.IOControl Method (Int32, Byte[], Byte[])

    Socket.IOControl Method (IOControlCode, Byte[], Byte[])

    Int32 的最大值不過是 2,147,483,647 , 轉成 16 進位就是 0x7FFFFFFF

    你傳個  0X98000001 當然是超過 Int32 啊 ..


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2013年1月11日 下午 02:52
    版主
  • IOControl 有兩個多載

    Socket.IOControl Method (Int32, Byte[], Byte[])

    Socket.IOControl Method (IOControlCode, Byte[], Byte[])

    Int32 的最大值不過是 2,147,483,647 , 轉成 16 進位就是 0x7FFFFFFF

    你傳個  0X98000001 當然是超過 Int32 啊 ..


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    謝謝Bill大大
    每次都有勞您了
    大概知道您的意思
    這個sample code我還需要時間去理解他
    您說的部分
    我在研究一下
    感恩

    2013年1月11日 下午 03:06
  • http://social.msdn.microsoft.com/forums/zh-TW/230/thread/83a6d495-35b8-4fc8-ad03-327d86702cc7

    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2013年1月11日 下午 06:04
  • http://social.msdn.microsoft.com/forums/zh-TW/230/thread/83a6d495-35b8-4fc8-ad03-327d86702cc7

    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    謝謝心冷大

    這篇我也有看到

    璉大提供的範例是2006的

    而我是2010,目前研究中 因為跑不出來  XDD

    2013年1月12日 上午 02:22