Strumenti Utente

Strumenti Sito


roberto.alfieri:user:reti:socket:udp

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
roberto.alfieri:user:reti:socket:udp [10/11/2019 18:52]
roberto.alfieri
roberto.alfieri:user:reti:socket:udp [05/12/2019 23:24] (versione attuale)
roberto.alfieri
Linea 385: Linea 385:
 === send() e recv() bloccante e non bloccante === === send() e recv() bloccante e non bloccante ===
    
-La send() e' normalmente bloccante; si blocca quando il buffer in trasmissione e' pieno. ​  +  * La **send()** e' normalmente bloccante; si blocca quando il buffer in trasmissione e' pieno. ​  
-Con un socket Non Bloccante di tipo TCP, se l’operazione di scrittura non può essere effettuata ​ +  ​* ​Con un socket Non Bloccante di tipo TCP, se l’operazione di scrittura non può essere effettuata ​ nemmeno in parte perché manca spazio nei buffer del TCP in cui andare a scrivere i dati, la funzione ritorna immediatamente al chiamante restituendo il codice d’errore EWOULDBLOCK. 
-nemmeno in parte perché manca spazio nei buffer del TCP in cui andare a scrivere i dati, la funzione +  ​* ​Se invece e’ rimasto spazio, viene effettuata una scrittura di una porzione di dati minore o uguale alla dimensione del buffer libero, e la write restituisce il numero di byte scritti.
- ritorna immediatamente al chiamante restituendo il codice d’errore EWOULDBLOCK. +
- Se invece e’ rimasto spazio, viene effettuata una scrittura di una porzione di dati minore o uguale alla  +
-dimensione del buffer libero, e la write restituisce il numero di byte scritti.+
  
  
-  * La recv() e' per default bloccante; ​ si blocca quando il buffer in ricezione associato al socket è vuoto.+  * La **recv()** e' per default bloccante; ​ si blocca quando il buffer in ricezione associato al socket è vuoto.
   * Ritorna quando ci sono dati nel buffer e il numero di byte letti puo' essere inferiore al numero di byte richiesto.   * Ritorna quando ci sono dati nel buffer e il numero di byte letti puo' essere inferiore al numero di byte richiesto.
   * Ritorna 0 quando non ci sono dati nel buffer e l'​altro peer ha chiuso la connessione.   * Ritorna 0 quando non ci sono dati nel buffer e l'​altro peer ha chiuso la connessione.
Linea 491: Linea 488:
  
  
-[[http://www.fis.unipr.it/~roberto.alfieri/didattica/matdid/prog/net/p2p-udp/ | p2p-udp]]+[[ http://didattica-linux.unipr.it/​~alfieri/​matdid/​RETI/udp/p2p-udp/ | p2p-udp]]
  
 ** Portmapper **   Se i servizi di rete sono dinamici e' utile avere un registry server (portmapper) ​ in cui vengono registrati i servizi attivi (tipo di servizio, indirizzo ip,  porta). Il client esegue un lookup sul portmapper, quindi contatta il servizio desiderato. ** Portmapper **   Se i servizi di rete sono dinamici e' utile avere un registry server (portmapper) ​ in cui vengono registrati i servizi attivi (tipo di servizio, indirizzo ip,  porta). Il client esegue un lookup sul portmapper, quindi contatta il servizio desiderato.
roberto.alfieri/user/reti/socket/udp.1573408322.txt.gz · Ultima modifica: 10/11/2019 18:52 da roberto.alfieri