Estoy luchando con dos errores con Boost.Asio.La documentación de Boost.Asio no existe. ¿Qué significan estos errores?
El primero ocurre cuando intento para recibir datos de un conector:
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"
El segundo ocurre cuando intento crear una ip tcp :: :: toma de una toma nativa (válido!):
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 todos estos problemas y sin documentación a la que recurrir, estoy tentado de volver a enchufes BSD, pero tengo mis propios problemas allí ... así que si alguien puede ayudar, realmente apreciaría eso.
EDIT: en cuanto al número 2, nativeSocket se declara así:
SOCKET nativeSocket = INVALID_SOCKET;
nativeSocket = accept(svr_sock, (struct sockaddr*)&sin, &size);
Después de eso, algunas otras cosas se hacen a la toma - a saber, configurándolo como no bloqueante usando ioctlsocket, y usando setsockopt para SO_LINGER y SO_OOBINLINE.
¿Puede dar la declaración/inicialización para nativeSocket? Creo que los problemas con el problema 2 se encuentran en eso. – rcollyer
Acaba de agregarlo. –
Para su primera pregunta: "Fin del archivo" normalmente indica que la conexión fue cerrada por el par. –