Differenze tra le versioni di "Effettuare il PING"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Per effettuare il [https://it.wikipedia.org/wiki/Ping PING] (''Packet INternet Groper'' ) con Gambas, si potrà lanciare l'omonimo comando bash "ping" seguito dal prefisso "ww...")
 
 
Riga 23: Riga 23:
 
       Repeat
 
       Repeat
 
         fread(p1, 1, 1, p2)
 
         fread(p1, 1, 1, p2)
         s &= String@(p1))
+
         s &= String@(p1)
 
         Wait 0.001
 
         Wait 0.001
 
       Until Right(s, 1) = "\n"
 
       Until Right(s, 1) = "\n"

Versione attuale delle 11:14, 9 feb 2024

Per effettuare il PING (Packet INternet Groper ) con Gambas, si potrà lanciare l'omonimo comando bash "ping" seguito dal prefisso "www." più il nome del dominio oppure dall'indirizzo IP mediante le istruzioni Shell o Exec[].

In alternativa si potrà anche utilizzare la funzione esterna di C "popen()", ad esempio come segue:

Library "libc:6"

' FILE *popen (const char *__command, const char *__modes)
' Create a new stream connected to a pipe running the given command.
Private Extern popen(__command As String, __modes As String) As Pointer

' size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream)
' Read chunks of generic data from STREAM.
Private Extern fread(__ptr As Pointer, __size As Long, __n As Long, __stream As Pointer) As Long


Public Sub ToggleButton1_Click()

 If ToggleButton1.Value Then
   Dim p1, p2 As Pointer
   Dim s As String
   p1 = Alloc(SizeOf(gb.Byte), 1)
   p2 = popen("ping www.gambas-it.org", "r")
   While ToggleButton1.Value
     Repeat
       fread(p1, 1, 1, p2)
       s &= String@(p1)
       Wait 0.001
     Until Right(s, 1) = "\n"
     ListBox1.Add(RTrim(s))
     s = Null
   Wend
 Else
   Free(p1)
   p1 = 0
 Endif

End


Public Sub Form_Close()

 Quit
  
End