Sono in difficoltà con due errori con Boost.Asio.Boost.Asio documentazione inesistente. Cosa significano questi errori?
La prima si verifica quando si tenta di ricevere i dati su un socket:
char reply[1024];
boost::system::error_code error;
size_t reply_length = s.receive(boost::asio::buffer(reply, 1024), 0, error);
if (error) cout << error.message() << endl; //outputs "End of file"
Il secondo si verifica quando si tenta di creare un ip :: tcp :: presa da una presa di corrente (valido!) Nativo:
boost::asio::io_service ioserv;
boost::asio::ip::tcp::socket s(ioserv);
boost::system::error_code error;
s.assign(boost::asio::ip::tcp::v4(), nativeSocket, error);
if (error) cout << error.message() << endl; //outputs "The parameter is incorrect"
Con tutti questi problemi senza documentazione a cui rivolgersi, sono tentato di tornare alle prese BSD, ma ho i miei problemi lì ... quindi se qualcuno può aiutare, mi piacerebbe molto esso.
EDIT: Per quanto riguarda il numero 2, nativeSocket è dichiarato così:
SOCKET nativeSocket = INVALID_SOCKET;
nativeSocket = accept(svr_sock, (struct sockaddr*)&sin, &size);
Dopo di che, un paio di altre cose sono fatte alla presa - vale a dire, impostandola come non bloccante utilizzando ioctlsocket, e utilizzando setsockopt per SO_LINGER e SO_OOBINLINE.
Puoi fornire la dichiarazione/inizializzazione per nativeSocket? Penso che i problemi con prob 2 si trovino in questo. – rcollyer
Appena aggiunto. –
Per la prima domanda: "Fine del file" indica normalmente che la connessione è stata chiusa dal peer. –