Modding Union
Modderecke => Allgemeine Modding-Fragen => Thema gestartet von: Turin Turumbar am 13. Mär 2010, 20:01
-
Hallöchen,
ich habe im Moment ein Problem beim Programmieren meines Switchers und ich hoffe jemand hier im Forum kennt sich ein wenig mit VisualBasic aus und kann den Fehler finden.
Zum Problem: Der Code soll testen, ob eine Internetverbindung zum Server vorhanden ist, dies macht er, indem der Server angepingt wird. Komischerweise lief bis zur letzten Version der Code ohne Probleme, in der neuen auf einmal nicht mehr. In der neuen Version will er aber nicht mehr so, wie ich will:
Der Code wird auf XP problemlos ausgeführt, mit richtigen Ergebnis etc.
Auf Vista jedoch, wird immer angezeigt, dass keine Verbindung vorhanden ist.
Ich habe keinen Plan wo der Fehler liegt und hoffe nun auf eure Hilfe:
Dim siteResponds As Boolean
Try
siteResponds = My.Computer.Network.Ping("http://modding-union.com")
Catch
siteResponds = False
End Try
MsgBox(siteResponds)
Auf Vista, gibt er nun, egal ob Verbindung vorhanden oder nicht, False aus, auf XP dagegen funktioniert alles einwandfrei. Hoffe jemand kann mir helfen...
Turin
-
Wesentlich simplere überlegung:
Ping doch mal mit der eingabeaufforderung vll hat die firewall was gegen das pingen...
-
Das mit der Firewall wäre auch mein erster Hinweis gewesen. Ansonsten benutze ich bei meinem Updatemechanismus folgendes:
Function updateversion() As String
Dim IoStream As System.IO.Stream
Dim StrRead As System.IO.StreamReader
Try
' Einen WebRequest für den URL erzeugen
Dim Request As System.Net.WebRequest = System.Net.WebRequest.Create("http://www.irgendeine-website.com/version.txt")
' Die Antwort auf den Request in einen Stream legen
IoStream = Request.GetResponse.GetResponseStream
' Einen StreamReader erzeugen, der den Stream ausliest
StrRead = New System.IO.StreamReader(IoStream)
' Den Quellcode des URLs zurückgeben
updateversion = StrRead.ReadToEnd
StrRead.Close()
IoStream.Close()
Catch ex As Exception ' bei beliebigem Fehler
Return "Error"
End Try
End Function
-
Bereits getestet, per Eingabeaufforderung funktioniert es tadellos.
Habe grade auch nochmal das getestet:
If My.Computer.Network.Ping("http://modding-union.com/") = False Then
siteResponds = False
End If
if My.Computer.Network.Ping("http://modding-union.com/") = True Then
siteResponds = True
End If
Auch das funktioniert auf XP Tadellos, auf Vista crasht das Programm mit diesem Fehler:
Während einer Pinganforderung ist eine Ausnahme aufgetreten. ---> System.Net.Sockets.Socke tException: Der angegebene Host ist unbekannt
Edit: Grad per Google die Lösung gefunden: Das http:// und der / am Ende müssen weg und das ganze funktioniert auch auf Vista, wie soll man bitteschön auf so etwas banales kommen. o.O
Der Code funktioniert jetzt auf jeden Fall wieder richtig, danke trotzdem für eure Hilfe. ;)