Wie verwende ich Socket Recv in Kombination mit STD :: Vektor Post C ++ 23?C++

Programme in C++. Entwicklerforum
Guest
 Wie verwende ich Socket Recv in Kombination mit STD :: Vektor Post C ++ 23?

Post by Guest »

Es gab früher eine Methode zum Lesen von Daten aus einem Socket und Speichern der empfangenen Daten in einem std :: vector .
Ein solches Beispiel kann hier gefunden werden. < /p>
Für die Bequemlichkeit ist hier eine Kopie einiger nahezu identischer Code. < /p>

Code: Select all

const size_t recv_buffer_length = 128;

std::vector recv_buffer;
recv_buffer.reserve(recv_buffer_length);

const auto byte_count = recv(peer_fd, recv_buffer.data(), recv_buffer_length, 0);
recv_buffer.resize(byte_count);

// does not print anything. `.size() > 0`, but each element is `\0`
for(const auto i: std::views::iota(0, byte_count))
{
std::print("{}", recv_buffer[i]);
}
Dies funktioniert nicht mehr in C ++ 23. Der Grund dafür ist, dass die Größe einen Standardwert verwendet >
Gibt es eine Lösung dafür? Vorzugsweise eine, die vermeidet, einen Zeiger und eine Längenvariable zu verfolgen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post