基本的に、多くの異なる整数を含むリストがあります。これらのデータをクライアントからサーバーに値ごとに送信したいですか?
1 に答える
2
まず第一に、それらを 1 つずつ送信することが絶対に重要でない限り、ほとんどの場合、代わりに一度にリスト全体を送信する方が適切です。
それらを送信する方法については、通常、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 に答える