-7

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

4

1 回答 1

2

首先,除非将它们逐个发送绝对至关重要,否则一次发送整个列表几乎总是会更好。

至于如何发送,一般是把ints 放到一个缓冲区中,将每个转换为网络顺序,然后将整个缓冲区发送给接收者。虽然我没有测试过这段代码,但这个一般顺序的东西应该可以工作:

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 回答