Internet-Ports testen

  • VB.NET

    Internet-Ports testen

    hallo.

    evtl liegt es an einer Schwachstelle in WIndows-Vista, jedoch führt mein aktueller Port-Test-algorythmus zum Programmabstürz bei anderen Rechnern. auf meinem (win XP) funktioniert's einwandfrei.

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Cursor = Cursors.WaitCursor
    3. Dim se As New Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.IP)
    4. Dim ep As New Net.IPEndPoint(WANIP, NumericUpDown5.Value)
    5. Dim se1 As New Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.IP)
    6. de = New Threading.Thread(AddressOf sowas)
    7. de.Start(se1)
    8. Try
    9. se.Connect(ep)
    10. Label19.Text = "OK"
    11. logger("Port-Test erfolgreich für: " & NumericUpDown5.Value)
    12. se.Close()
    13. Catch ex As Exception
    14. de.Abort()
    15. se1.Close()
    16. Label19.Text = "Test fehlgeschlagen (Port bitte freischalten)"
    17. logger("Port-Test fehlgeschlagen für: " & NumericUpDown5.Value)
    18. End Try
    19. TextBox3.Text = erg
    20. Cursor = Cursors.Default
    21. End Sub

    VB.NET-Quellcode

    1. Private Sub sowas(ByVal se1 As Sockets.Socket)
    2. Dim ep As New Net.IPEndPoint(EigeneIP, NumericUpDown5.Value)
    3. se1.Bind(ep)
    4. se1.Listen(1)
    5. se1.Accept()
    6. se1.Close()
    7. End Sub


    WANIP und EigeneIP sind die Wan-IP und die ComputerIP des eigenen Computers als IpAdress-Objekt.

    die entsprechende Fehlermeldung auf anderen Systemen im Debug-Modus gab folgendes aus:

    Quellcode

    1. System.Net.Sockets.SocketException wurde nicht behandelt.
    2.   ErrorCode=10047
    3.   Message="Es wurde eine Adresse verwendet, die mit dem angeforderten Protokoll nicht kompatibel ist"
    4.   NativeErrorCode=10047
    5.   Source="System"
    6.   StackTrace:
    7.        bei System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
    8.        bei System.Net.Sockets.Socket.Bind(EndPoint localEP)
    9.        bei Fragola.Form1.sowas(Socket se1) in F:\Documents\fragola\Fragola\Fragola\Fragola\Form1.vb:Zeile 86.
    10.        bei Fragola.Form1._Lambda$__1(Object a0) in F:\Documents\fragola\Fragola\Fragola\Fragola\Form1.vb:Zeile 96.
    11.        bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    12.        bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    13.        bei System.Threading.ThreadHelper.ThreadStart(Object obj)
    14.   InnerException:


    gibt es eine andere Möglichkeit, Ports zu testen?
    und warum gibt das hier zumindest bei Vista fehler?