2009-11-04 15 views
9

Sto semplicemente cercando di creare una spinta ip::tcp::socket da un socket nativo esistente. Nel assign function, il primo parametro deve essere un "tipo_p protocollo" e il secondo deve essere un "tipo_ native", ma non spiega mai che cosa sono o ne fornisce un esempio.Come creare una presa Boost.Asio da un socket nativo?

Immagino che il secondo debba essere il descrittore di socket, ma apprezzerei molto il chiarimento.

risposta

10

"Tipo nativo" è solo l'handle del socket, in questo caso l'int memorizzato in "socket".

"Protocol type" è il protocollo. Per un TCP su IP standard utilizzando il socket di flusso, questo sarebbe il valore di ritorno da boost :: asio :: ip :: tcp :: v4(). Sostituto come appropriato per i socket datagram, IPv6, ecc

Quindi:

s.assign(boost::asio::ip::tcp::v4(), socket); 

opportunamente rettificato per quello che stai cercando di fare.

Problemi correlati