Abilitare JavaScript per vedere questo sito.

Funzione per ricevere un messaggio UDP con la possibilità di sapere la porta e l'indirizzo IP del mittente.

La funzione può essere usata per comunicazioni sia da parte del client sia da parte del server. In particolare, il server utilizza le informazioni di rPort e rIp restituite da questa funzione per mandare un'eventuale risposta alla stazione client tramite la udp_send_to().

Sintassi

i32 udp_recv_from (i32 idx, buff, i32 buffLen, u32 rPort, u32 rIp)

idx

Numero dell'handler della comunicazione UDP.

buff

Buffer generico destinato a contenente il pacchetto dati ricevuto.

Può essere una variabile string, una struct_p (struttura packed) oppure un array di struct_p. Nel caso di struct_p, la variabile deve essere dichiarata globale.

buffLen

Numero di byte massimo da ricevere.

rPort

Numero della porta remota da cui sono stati ricevuti i dati (il suo contenuto viene scritto da questa funzione).

rIp

Indirizzo IP remoto da cui sono stati ricevuti i dati (il suo contenuto viene scritto da questa funzione, non è necessario specificarlo prima della chiamata).

Risultato

Rende:

Valore

Significato

>= 0

Operazione eseguita con successo. Viene reso il numero di caratteri ricevuti.

-1

idx illegale.

-2

Socket non aperto.

-1000 -:- -2000

Codice di errore della funzione di S.O. recv_from(), con offset 1000.

Per vedere più nello specifico alcuni errori resi, vedi Tabella errori resi.

Validità

Rule, Task.

Note

In testa al buffer di ricezione dati deve essere sempre riservato il posto per un u32, che contiene l'identificatore msgId. Questo identificatore deve essere ritrasmesso senza modifiche (tramite la funzione udp_send_to()) in testa al buffer che contiene la risposta. In assenza di questo identificatore, un client che utilizza le funzioni udp_send_notify() e udp_recv_notify() non sarà in grado di identificare la risposta come corretta.

Per un esempio concreto vedi in ambiente RDE: Workspace -> Speciali -> Libreria degli esempi.

 

  

Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Contents: ALT+c
Search: ALT+s
Exit Menu/Up: ESC