-7

基本的に、多くの異なる整数を含むリストがあります。これらのデータをクライアントからサーバーに値ごとに送信したいですか?

4

1 に答える 1

2

まず第一に、それらを 1 つずつ送信することが絶対に重要でない限り、ほとんどの場合、代わりに一度にリスト全体を送信する方が適切です。

それらを送信する方法については、通常、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 に答える