Abilitare JavaScript per vedere questo sito.

Introduzione

Avvertenze per l'uso corretto della comunicazione UDP da applicazioni R3:

La comunicazione UDP su ethernet effettuata da applicativo R3 funziona esclusivamente utilizzando l'interfaccia ethernet presente a bordo della scheda CPU. Non può essere utilizzata per comunicare tramite un'interfaccia ethernet presente su altre schede (es. scheda Netint)

Per sue caratteristiche intrinseche, la comunicazione UDP non garantisce la consegna dei pacchetti di dati. L'applicazione deve farsi carico, se richiesto, della verifica e della ritrasmissione dei pacchetti persi

La comunicazione UDP non garantisce la tempistica di trasmissione

La comunicazione UDP non garantisce la sequenza temporale di ricezione dei pacchetti. Il pacchetto P2, trasmesso dopo il pacchetto P1, può essere ricevuto prima di P1. L'applicazione deve farsi carico, se richiesto, del riordino dei dati

L'handle associato a una comunicazione UDP (valore restituito dalle funzioni udp_open_) ha senso unicamente nell'ambito del task R3 in cui è stata effettuata la open. Non è possibile utilizzare l'handle in un task differente per eseguire chiamate ad altre funzioni UDP

È possibile trasmettere con una singola chiamata di una funzione udp_ fino ad un massimo di 65535 byte. Nel S.O. (livello IP) la trasmissione avviene con spezzettamento del buffer in blocchi di dimensione massima pari a MAX_UDP_DATA = 508. Se uno di questi pacchetti fallisce la trasmissione, tutto il buffer, di conseguenza, viene perso

Le funzioni udp_send_notify() e udp_recv_notify() devono in ogni caso avere un buffer limitato a MAX_UDP_DATA byte

L'utente che realizza da task R3 una applicazione server UDP può utilizzare il numero di porta che desidera per la connessione. Si consiglia comunque di evitare la fascia da 8000 a 8999, per evitare conflitti con le attuali e future implementazioni Robox

udp

Istruzioni

udp_close()

Chiusura di una comunicazione UDP

udp_open_client()

Apertura di una comunicazione UDP di tipo client

udp_open_server()

Apertura di una comunicazione UDP di tipo server

udp_recv()

Ricezione di un messaggio UDP da una stazione precedentemente specificata

udp_recv_from()

Ricezione di un messaggio UDP da una stazione specificata

udp_recv_notify()

Ricezione di un messaggio UDP (notifica) da una stazione precedentemente specificata

udp_send()

Invio di un messaggio UDP a una stazione precedentemente specificata

udp_send_notify()

Invio di un messaggio UDP con notifica a una stazione precedentemente specificata

udp_send_to()

Invio di un messaggio UDP a una stazione specificata

ipaddr_to_str()

Supporto

str_to_ipaddr()

Supporto

NOTA: Un esempio client/server è presente in RDE3-->workspace-->esempi predefiniti.

Esempio

 

  

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