Ich bin derzeit mit Vektoren als C-Stil-Arrays zu senden und empfangen Daten über Winsock.
Ich habe einen std::vector und ich bin mit, dass als meine "Byte-Array".
Das Problem ist, dass ich zwei Vektoren verwende, einen für jedes Senden und einen für jedes Empfangen, aber was ich tue, scheint ziemlich ineffizient zu sein.
Beispiel:
std::string EndBody("\r\n.\r\n");
std::fill(m_SendBuffer.begin(),m_SendBuffer.end(),0);
std::copy(EndBody.begin(),EndBody.end(),m_SendBuffer.begin());
SendData();
SendData ruft send nur die entsprechende Anzahl von Malen auf und stellt sicher, dass alles so funktioniert, wie es sollte.
Wie auch immer. Wenn ich den Vektor nicht vor jeder Verwendung auf Null setze, erhalte ich Fehler mit Überschneidungen. Gibt es einen effizienteren Weg für mich zu tun, was ich tue? Denn es scheint, dass Nullen aus den gesamten Puffer bei jedem Aufruf schrecklich ineffizient ist.
Danke.