基本上,我有一个包含许多不同整数的列表,我想将这些数据从客户端发送到服务器一个值到另一个值?
答案 0 :(得分:2)
首先,除非绝对对于逐个发送它们至关重要,否则你最好一次发送一个完整的列表。
关于如何发送它们,您通常希望将int
放在一起放入缓冲区,将每个转换为网络顺序,然后将整个缓冲区发送到接收方。虽然我没有测试过这段代码,但是这个通用命令应该有用:
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风格案例。