Funzione per l'invio di un messaggio UDP ad una stazione (nPort e nAddr) specificata.
|
i32 udp_send_to (i32 idx, buff, i32 dataLen, u32 rPort, u32 rIp)
|
|
Numero dell'handler della comunicazione UDP.
|
|
Buffer generico contenente il pacchetto dati da trasmettere. Può essere una variabile string, una struct_p (struttura packed) oppure un array di struct_p. Nel caso delle struct_p, la variabile deve essere dichiarata globale.
|
|
Numero di byte totali da trasmettere.
|
|
Numero della porta remota a cui trasmettere i dati.
|
|
Indirizzo IP a cui trasmettere i dati.
|
|
Rende:
|
|
>= 0
|
Operazione eseguita con successo. Viene reso il numero di caratteri inviati.
Il messaggio viene sempre inviato per intero, quindi il numero di byte inviati è sempre uguale a dataLen a meno di errori.
|
-1
|
Numero di porta non valido.
|
-2
|
Indirizzo non valido.
Deve essere diverso da 0.
|
-3
|
idx illegale.
|
-4
|
Socket non aperto.
|
-1000 -:- -2000
|
Codice di errore della funzione di S.O. sendto(), con offset 1000.
|
Per vedere più nello specifico alcuni errori resi, vedi Tabella errori resi.
|
|
Rule, Task.
|
|
La funzione può essere usata per comunicazioni da parte del client e del server.
|
Per un esempio concreto vedi in ambiente RDE: Workspace -> Speciali -> Libreria degli esempi.
|
|
-1009
|
[EBADF] Id non valido.
|
-1011
|
[EAGAIN o EWOULDBLOCK] 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.
|
-1013
|
[EACCES] L'opzione SO_BROADCAST non è stata impostata sul socket e un indirizzo impostato è di tipo broadcast.
|
-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.
|
-1032
|
[EPIPE] Il socket ha perso la connessione.
|
-1088
|
[ENOTSOCK] Id non valido, non si riferisce ad un socket.
|
-1089
|
[EDESTADDRREQ] In un socket non connesso l'indirizzo non è stato specificato.
|
-1097
|
[EAFNOSUPPORT] L'indirizzo specificato nella famiglia di indirizzi non può essere usato da questo socket.
|
-1105
|
[ENOBUFS] Il messaggio non è stato inviato perchè avrebbe superato la dimensione massima del buffer.
|
-1106
|
[EISCONN] Un indirizzo di destinazione è stato specificato e il socket è già connesso.
|
-1112
|
[EHOSTDOWN] La destinazione è un host sulla sottorete locale e non risponde al protocollo ARP.
|
-1113
|
[EHOSTUNREACH] Destinazione non raggiungibile.
|
-1122
|
[EMSGSIZE] Messaggio troppo lungo.
|
NOTA: Per la tabella completa dei codici errore vedi Codici di errore funzioni tenendo conto dell'offset.
|