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