C ++,客户端如何逐个将list <int>值发送到服务器?</int>

时间:2012-04-16 03:02:32

标签: c++ list tcp int

基本上,我有一个包含许多不同整数的列表,我想将这些数据从客户端发送到服务器一个值到另一个值?

1 个答案:

答案 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风格案例。