Funzione per la ricezione di un messaggio UDP da un server.
La stazione (nPort e nAddr) è stata precedentemente specificata tramite una udp_open_client().
|
i32 udp_recv (i32 idx, buff, i32 buffLen)
|
|
Numero dell'handler della comunicazione UDP.
|
|
Buffer generico destinato a contenente il pacchetto dati ricevuto.
Può essere una variabile string, struct_p (struttura packed) oppure un array di struct_p. Nel caso di struct_p, la variabile deve essere dichiarata globale.
|
|
Numero di byte massimo da ricevere.
|
|
Rende:
|
|
>= 0
|
Operazione eseguita con successo. Viene reso il numero di caratteri ricevuti.
|
-1
|
idx illegale.
|
-2
|
Socket non aperto.
|
-3
|
Socket aperto come server e non come client.
|
-1000 -:- -2000
|
Codice di errore della funzione di S.O. recv(), con offset 1000.
|
Per vedere più nello specifico alcuni errori resi, vedi Tabella errori resi.
|
|
Rule, Task.
|
|
La udp_recv() può essere usata solo per comunicazioni da parte del client.
|
Per un esempio concreto vedi in ambiente RDE: Workspace -> Speciali -> Libreria degli esempi.
|
|
-1004
|
[EINTR] La lettura è stata interrotta prima che alcun dato sia stato ricevuto.
|
-1009
|
[EBADF] Id non valido.
|
-1011
|
[EAGAIN] Ritentare. Il socket era di tipo non-blocking e la ricezione avrebbe bloccato l'esecuzione, oppure un timeout sulla ricezione è stato impostato e tale timeout è scaduto prima che alcun dato sia stato ricevuto.
|
-1014
|
[EFAULT] Il puntatore buffer punta a un'area di memoria fuori dallo spazio di processo.
|
-1022
|
[EINVAL] La lunghezza totale degli I/O è maggiore del massimo rappresentabile dal tipo restituito.
|
-1088
|
[ENOTSOCK] Id non valido, non si riferisce ad un socket.
|
-1105
|
[ENOBUFS] Il messaggio non è stato inviato perchè avrebbe superato la dimensione massima del buffer.
|
-1107
|
[ENOTCONN] La connessione non è ancora stata creata.
|
-1122
|
[EMSGSIZE] Messaggio troppo lungo.
|
NOTA: Per la tabella completa dei codici errore vedi Codici di errore funzioni tenendo conto dell'offset.
|