Mentre si utilizza il comportamento predefinito (bloccante) su un socket UDP, nel qual caso verrà effettuata una chiamata a sendto()? Mi interessa essenzialmente il comportamento di Linux.Quando fa un blocco sendto() UDP?
Per TCP, capisco che il controllo della congestione rende il blocco delle chiamate send() se la finestra di invio è piena, ma per quanto riguarda UDP? A volte blocca anche o lascia i pacchetti scartati ai livelli inferiori?
Ok, seguendo il link ho trovato spiegazioni specifiche per Linux su [questo thread] (http://www.mail-archive.com/[email protected]/msg00113.html).Risposta breve così breve: _Linux fa bloccare sendto su un buffer di invio completo. –
OK, ma ora la domanda viene spinta solo un ulteriore passo: in quali condizioni Linux riempirà il buffer del socket? (invece di lasciar cadere i pacchetti fuori da esso). Questa è sfortunatamente una domanda molto difficile. – MarcH
@MarcH, che ne dici di recv, invia quando il socket sta bloccando? Penso che in questo caso send e recv bloccheranno comunque? – Bionix1441