Sagen wir, ich habe eine Nachrichtenwarteschlange, z. std::deque<std::vector<uint8_t>>()
Ich habe eine poll()
(oder wählen Sie), und wissen, dass der Sockel zum Schreiben bereit ist.Poco :: StreamSocket: erkennen Senden fehlgeschlagen
ich tun:
const auto& message = _messageQueue.front();
_socket.sendBytes(message.data(), message.size());
_messageQueue.pop_front();
Zum Beispiel kann ich eine Aussage machen, die die gleiche gesendeten Bytes als Nachrichtengröße ist, aber Poco Dokumentationen sagt, dass StreamSocket :: sendBytes()
Returns the number of bytes sent, which may be less than the number of bytes specified.
Poco Dokumentation sagt auch nichts, was eigentlich setBlocking()
Methode tut. Blockiert es bis ACK-Paket empfangen und wirft Socket-Fehler?
Lesen Sie hier: [Blockieren vs. nicht blockierende Sockets] (http://www.scottklement.com/rpg/socktut/nonblocking.html). –