В настоящее время я использую векторы как массивы в стиле c для отправки и получения данных через Winsock.
У меня есть std :: vector, и я использую его как свой «байтовый массив».
Проблема в том, что я использую два вектора, по одному для каждой отправки, и по одному для каждого recv, но то, что я делаю, кажется довольно неэффективным.
Пример:
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 просто вызывает send соответствующее количество раз и гарантирует, что все работает как надо.
Так или иначе. Если я не обнуляю вектор перед каждым использованием, я получаю ошибки с перекрытием вещей. Есть ли для меня более эффективный способ делать то, что я делаю? Потому что кажется, что обнуление всего буфера при каждом вызове ужасно неэффективно.
Спасибо.