QuickOpenNetworkConnection

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

QuickOpenNetworkConnection

Message par ZapMan »

La fonction OpenNetworkConnection bloque l'execution du programme pendant 1 à 2 secondes quand le poste que l'on tente de contacter n'est pas présent.
Grâce à FWeil voici une version qui permet d'ajuster le TimeOut (et donc le temps de blocage). Attention ! Si vous diminuez trop #PING_TIMEOUT, vous risquez de "rater" un poste qui est pourtant présent.

Code : Tout sélectionner

Procedure QuickOpenNetworkConnection(sIPAddress.s,Port) 
  ; FWeil & Zapman
  #PING_TIMEOUT = 500 
  Echo.ICMP_ECHO_REPLY 
  EchoMessage.s = "PingTest " + Space(20) 
  hFile = IcmpCreateFile_() 
  IPAddress=MakeIPAddress(StringField(sIPAddress,1,"."),StringField(sIPAddress,2,"."),StringField(sIPAddress,3,"."),StringField(sIPAddress+".",4,"."))
  lngResult = IcmpSendEcho_(hFile, IPAddress, EchoMessage, Len(EchoMessage), 0, Echo, SizeOf(ICMP_ECHO_REPLY), #PING_TIMEOUT) 
  If lngResult = 0 
      PingResult = Echo\Status * -1 
    Else 
      PingResult = Echo\RoundTripTime 
  EndIf 
  lngResult = IcmpCloseHandle_(hFile) 
  If PingResult >= 0 
    Result= OpenNetworkConnection(sIPAddress.s,Port)
  Else
    Result = 0
  EndIf
  ProcedureReturn Result
EndProcedure 
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm