Differenze tra le versioni di "Trasmissione di dati fra due o più programmi Gambas mediante la Classe UdpSocket del Componente gb.net"

Da Gambas-it.org - Wikipedia.
 
Riga 3: Riga 3:
 
  ~$ hostname -I
 
  ~$ hostname -I
 
Il codice del programma che invia dati è il seguente:
 
Il codice del programma che invia dati è il seguente:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim UdpInvio As UdpSocket
 
   Dim UdpInvio As UdpSocket
Riga 25: Riga 25:
 
     Print Error.text
 
     Print Error.text
 
    
 
    
  '''End'''
+
  End
  
  
 
Il codice del programma che riceverà i dati, sarà il seguente:
 
Il codice del programma che riceverà i dati, sarà il seguente:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim UdpRicezione As UdpSocket
 
   Dim UdpRicezione As UdpSocket
Riga 45: Riga 45:
 
   Print "\nProgramma terminato"
 
   Print "\nProgramma terminato"
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub UdpRicezione_Read()
+
   
 +
Public Sub UdpRicezione_Read()
 
    
 
    
 
   Dim s As String
 
   Dim s As String
Riga 56: Riga 57:
 
   Last.Close
 
   Last.Close
 
    
 
    
  '''End'''
+
  End
 +
 
   
 
   
  '''Public''' Sub UdpRicezione_Error()
+
  Public Sub UdpRicezione_Error()
 
    
 
    
 
   Print Last.status
 
   Print Last.status
 
    
 
    
  '''End'''
+
  End
  
  

Versione attuale delle 12:05, 22 giu 2024

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