如何在C++中使用vector作为socket的输入缓冲区

cod*_*ons 1 c++

我通常设置一个巨大的缓冲区并从套接字读取数据,我意识到这不是一个读取数据的好方法.

我曾经有类似的东西

int bufsize = 4096;
char *buf;
int recv = read(sock, buf, bufsize)
Run Code Online (Sandbox Code Playgroud)

我喜欢使用std :: vector来替换char缓冲区.我不确定这是更好的方法.

能否请您提供示例教程或示例?

提前致谢...

Kir*_*sky 6

这很简单:

std::vector<char> buf(4096); // create buffer with preallocated size
int recv = read( sock, &buf[0], buf.size() );
Run Code Online (Sandbox Code Playgroud)