基本上,我有一个包含许多不同整数的列表,我想将这些数据从客户端发送到服务器一个值一个值?
问问题
253 次
1 回答
2
首先,除非将它们逐个发送绝对至关重要,否则一次发送整个列表几乎总是会更好。
至于如何发送,一般是把int
s 放到一个缓冲区中,将每个转换为网络顺序,然后将整个缓冲区发送给接收者。虽然我没有测试过这段代码,但这个一般顺序的东西应该可以工作:
void send_ints(socket dest, std::list<int> const &in) {
std::vector<int> netdata;
std::transform(in.begin(), in.end(), std::back_inserter(netdata), ::ntohl);
send(dest, (char *)&netdata[0], net_data.size() * sizeof(netdata[0]), 0);
}
根据您的喜好,您可能更喜欢使用static_cast
而不是我上面使用的 C 样式案例。
于 2012-04-16T03:36:25.687 回答