Ich habe mit zwei Fehlern mit Boost.Asio zu kämpfen.Die Boost.Asio-Dokumentation ist nicht vorhanden. Was bedeuten diese Fehler?
Die erste tritt auf, wenn ich versuche, auf einem Socket zu empfangen Daten:
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"
Die zweite tritt auf, wenn ich versuche, eine ip :: tcp :: Socket von einem (gültig!) Nativen Socket zu erstellen:
Mit all diesen Problemen und keine Dokumentation zu wenden, bin ich versucht, zurück zu BSD-Sockets zu gehen, aber ich habe meine eigenen Probleme dort ... also wenn jemand helfen kann, würde ich wirklich zu schätzen wissen es.
EDIT: Zu Nummer 2, nativeSocket thusly erklärt:
SOCKET nativeSocket = INVALID_SOCKET;
nativeSocket = accept(svr_sock, (struct sockaddr*)&sin, &size);
Danach, ein paar andere Dinge sind an die Buchse getan - nämlich als Einstellung nicht blockierende ioctlsocket und unter Verwendung setsockopt für SO_LINGER und SO_OOBINLINE.
Können Sie die Deklaration/Initialisierung für nativeSocket geben? Ich denke, die Probleme mit prob 2 liegen damit. – rcollyer
Sie haben es einfach hinzugefügt. –
Für Ihre erste Frage: "Dateiende" zeigt normalerweise an, dass die Verbindung vom Peer geschlossen wurde. –