我通常會設置一個巨大的緩衝區並從套接字讀取數據,並且我意識到它不是讀取數據的好方法。如何在C++中使用向量作爲套接字的輸入緩衝區
我曾經有過這樣的事情
int bufsize = 4096;
char *buf;
int recv = read(sock, buf, bufsize)
我喜歡使用std :: vector的更換字符緩衝區。我不確定這是更好的方法。
你能否給我提供關於此的示例教程或示例?
在此先感謝...
我通常會設置一個巨大的緩衝區並從套接字讀取數據,並且我意識到它不是讀取數據的好方法。如何在C++中使用向量作爲套接字的輸入緩衝區
我曾經有過這樣的事情
int bufsize = 4096;
char *buf;
int recv = read(sock, buf, bufsize)
我喜歡使用std :: vector的更換字符緩衝區。我不確定這是更好的方法。
你能否給我提供關於此的示例教程或示例?
在此先感謝...
這很簡單:
std::vector<char> buf(4096); // create buffer with preallocated size
int recv = read(sock, &buf[0], buf.size());
如果我將緩衝區大小設置爲100,並且傳入的數據包比這個大? I – codereviewanskquestions
也可以在閱讀後衝出載體以獲取新數據? – codereviewanskquestions
您可以使用['std :: vector :: resize'](http://www.cplusplus.com/reference/stl/vector/resize/)函數調整緩衝區大小。 –
何不的std :: string? – mattn
使用字符串向量的優點是什麼? – codereviewanskquestions
如您所知,如果recv數據是字符串,它可以用於操作。 :)不介意這個評論。 – mattn