Domanda

Qual è la differenza tra chiamare le funzioni membro boost :: asio :: ip :: tcp :: socket read_some / write_some e chiamare le funzioni gratuite boost :: asio :: read / boost :: asio :: write ?

Più specificamente:

C'è qualche vantaggio nell'usare l'uno rispetto all'altro?

Perché entrambi sono inclusi nella libreria?

È stato utile?

Soluzione

read_some e write_some possono tornare non appena viene trasferito anche un singolo byte. Pertanto, è necessario eseguire il ciclo se si desidera assicurarsi di ottenere tutti i dati, ma questo potrebbe essere quello che si desidera.

Le funzioni gratuite sono wrapper per read_some e write_some e hanno condizioni di terminazione diverse a seconda del sovraccarico. In genere attendono che il buffer sia completamente trasferito (o si verifichi un errore o in alcuni sovraccarichi si verifichi una condizione di completamento esplicito)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top