Funzione per l'apertura di una comunicazione UDP di tipo client.
Il client invia messaggi verso una stazione di destinazione specificata ed eventualmente legge la risposta proveniente dalla stessa stazione.
|
i32 udp_open_client (u32 nPort, u32 nAddr)
|
|
Numero della porta del server (remota) verso la quale il client invierà i suoi messaggi.
|
|
Indirizzo IP (remoto) verso il quale il client invierà i suoi messaggi.
|
|
Rende:
|
|
0-:-99
|
Operazione eseguita con successo. Viene reso l'ID della comunicazione.
|
-1
|
nPort illegale.
|
-2
|
nAddr illegale.
Deve essere diverso da 0.
|
-3
|
Tutte le entry della tabella connessioni del task sono già impegnate, impossibile stabilire una nuova connessione (max 10 connessioni).
|
-1000 -:- -2000
|
Apertura socket fallita: rende il codice fornito dalla funzione di S.O. socket(), con offset 1000.
|
-2000 -:- -3000
|
Funzione di S.O. connect() fallita: rende il codice fornito dalla connect(), con offset 2000.
|
Per vedere più nello specifico alcuni errori resi, vedi Tabella errori resi.
|
|
Rule, Task.
|
|
Se il risultato è negativo non deve essere utilizzato nelle altre funzioni di gestione della comunicazione UDP.
|
Per un esempio concreto vedi in ambiente RDE: Workspace -> Speciali -> Libreria degli esempi.
|
|
-1013
|
[EACCES] Permesso per la creazione del socket del tipo e del protocollo specificato negato.
|
-1023
|
[ENFILE] La tabella di file di sistema è piena.
|
-1024
|
[EMFILE] La tabella di descrizione pre-process è piena.
|
-1091
|
[EPROTOTYPE] Il tipo di socket non è supportato dal protocollo.
|
-1093
|
[EPROTONOSUPPORT] La famiglia di protocollo non è supportata oppure il protocollo stesso non è supportato.
|
-1097
|
[EAFNOSUPPORT] Il dominio non è supportato.
|
-1105
|
[ENOBUFS] Spazio buffer insufficiente.
|
-2002
|
[ENOENT] Il socket non esiste.
|
-2004
|
[EINTR] Il tentativo di connessione è stato interrotto.
|
-2009
|
[EBADF] Id non valido.
|
-2013
|
[EACCES] Si è tentato di eseguire una connessione ad un indirizzo broadcast senza che il socket fosse stato abilitato per il broadcast.
|
-2014
|
[EFAULT] Ha un indirizzo non valido.
|
-2022
|
[EINVAL] Indirizzo socket fuori dal range ammesso.
|
-2040
|
[ELOOP] Troppi link simbolici incontrati durante la traduzione del percorso.
|
-2088
|
[ENOTSOCK] Id non valido, non si riferisce ad un socket.
|
-2097
|
[EAFNOSUPPORT] L'indirizzo non ha una famiglia valida di indirizzi corretta nel relativo campo.
|
-2098
|
[EADDRINUSE] Un altro socket è già in ascolto sulla stessa porta.
|
-2101
|
[ENETUNREACH] La rete non è raggiungibile.
|
-2106
|
[EISCONN] Il socket è già connesso.
|
-2110
|
[ETIMEDOUT] Si è avuto timeout durante il tentativo di connessione. Su richiesta di SYN (n tentativi ogni x secondi) non si è avuto risposta (server occupato).
|
-2111
|
[ECONNREFUSED] Non c'è nessuno in ascolto sull'indirizzo remoto (su richiesta di SYN il client ha ricevuto un RST inciato direttamente dalla gestione TCP del server quando qualcosa non va) oppure il server ha raggiunto il numero di connessioni massime possibili.
|
-2114
|
[EALREADY] Il socket non è bloccante e un tentativo precedente di connessione non si è ancora concluso.
|
-2115
|
[EINPROGRESS] Il socket non è bloccante e la connessione non può essere conclusa immediatamente.
|
NOTA: Per la tabella completa dei codici errore vedi Codici di errore funzioni tenendo conto dell'offset.
|