Italian Rendere "dinamico" un indirizzo IP

iz1kbp

Member
Buongiorno a tutti.
Avrei necessita di redere "dinamico" un indirizzo IP nel senso, che dovrei assegnare all'ultimo byte dell'indirizzo IP un valore che decido durante l'uso del programma.
Sto sviluppando un semplice tester per il protocollo sACN , che lavora in multicast.
attualmente, per sviluppo, uso un IP unico (239.255.0.1)
B4X:
CreateMulticastSocket("udp", 5568, "239.255.0.1")
Ma durante il funzionamento questo valore deve poter cambiare fino a 255.
Alla partenza della mia app, inizializzo il mio protiocollo nella maniera sopra indicata e tutto funziona correttamente.
Una volta testato e funzionante su un indirizzo fisso,a me occorre poter cambiare l'ultimo byte dell'indirizzo IP, quando l'app è ormai avviata (ovviamente chiudo e reinizializzo il protocollo).
Praticamente ho pensato di creare una variabile uni_sacn (sia come INT che come STRING per capire quale fosse il problema) a cui davo un valore alla partenza del programma e poi, durante l'attivita dovrei cambiarla per testare alcune funzioni derivanti da questo cambiamento di IP

B4X:
public uni_sacn as string ' oppure come INT
...
uni_sacn="1" ' assegno un valore di default alla partenza
...
CreateMulticastSocket("udp", 5568, "239.255.0." & uni_sacn & ") ' il valore poi lo cambio durante il fuzionamento

In vb6 uso questo sistema è funziona...ma qui mi da questo errore

B4X:
Descrizione errore: Errore di sintassi.
Errore nella linea: 976 (Main)
CreateMulticastSocket("udp", 5568, "239.255.0." & uni_sacn & ")

Qualcuno mi puo indicare dove sabaglio e soprattutto , se si puo fare cosi?

grazie in anticipo.
Mario
 

Sagenut

Expert
Licensed User
Longtime User
Prova così
B4X:
public uni_sacn as string ' oppure come INT
...
uni_sacn="1" ' assegno un valore di default alla partenza
...
CreateMulticastSocket("udp", 5568, "239.255.0." & uni_sacn) ' il valore poi lo cambio durante il fuzionamento
Non so se funzionerà come metodo però l'errore era nella composizione della stringa.
 

Sagenut

Expert
Licensed User
Longtime User
Dovendo modificare il valore meglio usare un INT
B4X:
public uni_sacn as Int ' oppure come INT
...
uni_sacn= 1 ' assegno un valore di default alla partenza
...
CreateMulticastSocket("udp", 5568, "239.255.0." & uni_sacn.As(String)) ' il valore poi lo cambio durante il fuzionamento
In questo modo puoi aumentare il valore della variabile più facilmente, come hai scritto anche tu.
 

iz1kbp

Member
Grazie Sagenut...tombola.
Purtroppo , essendo che sviluppo prevalentemente in vb6 e molto saltuariamente devo fare dei passaggi ad android (per crearmi delle app che mi servono sul campo), mi porto dietro la sintassi di vb6...che non è che sia proprio uguale uguale a quella di b4a.
Comunque grazie per il suggerimento!;)
 
Top