// test_socket.cc // robert - programme du robot 2005. {{{ // // Copyright (C) 2005 Dufour Jérémy // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // // Contact : // Web: %WEB% // Email: // }}} #include "server_socket.hh" #include "address.hh" #include "socket_text.hh" #include "data/data_input_file.hh" #include "data/data_buffer.hh" #include #include #include int main (int argc, char **argv) { if (argc == 3) { try { // Serveur ServerSocket ss (atoi (argv[1])); Address a; SocketText st (ss, a); // DataBuffer de reception DataBuffer db; // Reception des données st >> db; std::cout << ">> Reçu " << db.size () << " bits." << std::endl; // Récupération des données du DataBuffer std::vector v (db.size ()); db.read ((uint8_t*) &v[0], db.size ()); // Ecriture dans le fichier std::ofstream file (argv[2]); file.write (&v[0], v.size ()); } catch (const std::runtime_error &r) { std::cerr << argv[0] << ": " << r.what () << std::endl; return 1; } } else { std::cerr << "Syntaxe: " << argv[0] << " port out_file" << std::endl; return 1; } return 0; }