Internetverbindung überprüfen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

bei mir ist es genau so wie beim Leo
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag von Gamer »

Bei mir auch 2x als Ergebnis 0... ist wohl nicht sehr zuverlässig.

Ich nutze das hier:

Code: Alles auswählen

InitNetwork() 
If (OpenNetworkConnection("www.google.de",80))<>0
MessageRequester("Info","Online und Server erreichbar!",0)
EndIf
Wenn man im Programm Zugriff auf das Internet braucht,
kann man auch gleich die entsprechende Domain kurz aufrufen,
denn so schlägt man 2 Fliegen mit einer Klappe...
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Dein Beispiel ist gut aber es gibt ein Problem, wenn ich nicht online bin passiert nix, als ob sich das Programm aufgehängt hat
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

@Zigapeda: Da muss dann noch ein Else rein + MessageRequester("Error","Verbindung Fehlgeschlagen.")
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

hab ich versucht aber wie gesagt das programm ist als ob es sich aufgehäng hat
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Liegt warscheinlich am TimeOut die Rückmeldung das die Connection fehlschlägt dauert warhscheinlich ein weilchen da PB noch so und so viel Minuten auf Rückmeldung vom Server wartet.
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Es sollte aber ziemlich schnell gehen. also für mein programm. Gäbe es auch die möglichkeit, das das programm so lange wartet bis eine verbindung hergestellt ist und dann einen bestimmten code ausführt?
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag von Gamer »

Hm das mit dem "Hängen" hab ich auch schon bei anderen Websachen bemerkt...

Du könntest einen Req ausgeben mit "Keine Verbindung zum Internet" und dann "Wiederholen" bzw. "Abbrechen" anbieten.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Nein es soll im hintergrund laufen, so ein art chatprogramm. sobald eine verbindung zum internet hergestellt ist startet das programm
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Probiers mal so:

Code: Alles auswählen

;

;Ping (c) 2002 by Siegfried Rings (known as the 'CodeGuru' )

;

;

Procedure lngNewAddress(strAdd.s)

sDummy.s=strAdd

Position = FindString(sDummy, ".",1) 

If Position>0 

 A1=Val(Left(sDummy,Position-1))

 sDummy=Right(Sdummy,Len(Sdummy)-Position)

 Position = FindString(sDummy, ".",1) 

 If Position>0 

  A2=Val(Left(sDummy,Position-1))

  sDummy=Right(Sdummy,Len(Sdummy)-Position)

  Position = FindString(sDummy, ".",1) 

  If Position>0 

   A3=Val(Left(sDummy,Position-1))

   sDummy=Right(Sdummy,Len(Sdummy)-Position)

   A4=Val(sDummy)

   Dummy.l=0

   PokeB(@Dummy,A1)

   PokeB(@Dummy+1,A2)

   PokeB(@Dummy+2,A3)

   PokeB(@Dummy+3,A4)

   ProcedureReturn Dummy

  EndIf

 EndIf  

EndIf

EndProcedure


Procedure Ping(strAdd.s)


  #PING_TIMEOUT = 200


  lngHPort.l

  lngDAddress.l

  strMessage.s

  lngResult.l

  ECHO.ICMP_ECHO_REPLY


  strMessage = "Echo This."

  lngDAddress = lngNewAddress(strAdd)

  lngHPort = IcmpCreateFile_()

  lngResult = IcmpSendEcho_(lngHPort, lngDAddress, strMessage, Len(strMessage), 0, ECHO, SizeOf(ICMP_ECHO_REPLY), PING_TIMEOUT)

  If lngResult = 0 

    PingResult = ECHO\Status * -1

  Else

    PingResult = ECHO\RoundTripTime

  EndIf

  lngResult = IcmpCloseHandle_(lngHPort)

  ProcedureReturn PingResult

EndProcedure

;Check ob google.de gepingt werden kann.
If Ping("216.239.39.104")>0
MessageRequester("Erfolgreich","Erfolgreich")
;oder dein chat connect code
Else
MessageRequester("Can't connect","Fehler beim Verbinden")
;oder die Fehlerbox weglassen.
EndIf
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
Antworten