Trasmissione di dati fra due o più programmi Gambas mediante la Classe UdpSocket del Componente gb.net

Da Gambas-it.org - Wikipedia.

Di seguito mostriamo due semplici programmi, uno che invia dati e l'altro che riceve tali dati mediante la Classe "UdpSocket" del Componente gb.net .
Bisognerà individuare il proprio indirizzo IP privato. Questo indirizzo IP privato potrà essere ricavato lanciando da Terminale il comando:

~$ hostname -I

Il codice del programma che invia dati è il seguente:

Public Sub Main()
 
 Dim UdpInvio As UdpSocket
 
 With UdpInvio = New UdpSocket As "UdpInvio"
   .Broadcast = True
' Si assegna il proprio indirizzo IP privato:
   .TargetHost = "Indirizzo_IP_privato"
' Si assegna il numero della porta del programma ricevente:
   .TargetPort = "12345"
   .Bind()
 End With
 
 If UdpInvio.Status = Net.Active Then
   Write #UdpInvio, "Testo qualsiasi inviato"
   Flush #UdpInvio
   Close #UdpInvio
 Endif
 
 Catch 
    Print Error.text
  
End


Il codice del programma che riceverà i dati, sarà il seguente:

Public Sub Main()
 
 Dim UdpRicezione As UdpSocket
 
 With UdpRicezione = New UdpSocket As "UdpRicezione"
   .broadcast = True
' Si assegna un numero qualsiasi della porta:
   .port = 12345
   .Bind()
 End With
 
 While UdpRicezione.Status = Net.Active
   Wait 0.01
 Wend
 Print "\nProgramma terminato"
 
End

Public Sub UdpRicezione_Read()
 
 Dim s As String
 
 Read #Last, s, -32
 Print s
 
 Last.Close
 
End

Public Sub UdpRicezione_Error()
 
 Print Last.status
 
End


Riferimenti