我想使用boost :: asio :: ip :: tcp :: socket的方法「read_some()」來填充表示爲char * 。將char *轉換爲boost :: array for socket使用
這裏是我的方法實現迄今:
template<class charType>
int receive_some(charType* buffer, int size)
{
int total_received = 0;
boost::array<charType, size> buf;
while (1)
{
int received = 0;
boost::system::error_code error;
received = _socket.read_some(boost::asio::buffer(buf), error);
if (error == boost::asio::error::eof)
{
break;
}
std::cout.write(buf.data(), received);
total_received += received;
}
return total_received;
}
我的問題是我不知道如何轉換我的charType *緩衝區中的boost ::數組buf中。在進程結束時迭代我的boost :: array的元素以填充緩衝區對象似乎很昂貴...
任何想法?
爲什麼模板化?你希望從網絡中接收其他字節嗎? – Eric 2014-10-31 09:05:49
也許他從插座接受蔬菜......在這種情況下,它必須是一個模板。但是,在這裏不需要模板。 – Blacktempel 2014-10-31 09:09:44
我可以接收char *,unsigned char *等,不是? – 2014-10-31 10:03:53