From c50955765bfd033c8be61bff6132a1b2ba5c2eb3 Mon Sep 17 00:00:00 2001 From: dufourj Date: Fri, 29 Apr 2005 20:45:52 +0000 Subject: Ajout des fichers du dossier socket pour le réseau * Address : gestion des structures d'adresse pour les sockets, * SocketText : socket qui écrit en texte sur le réseau, * SocketServer : serveur qui écoute sur un port. La classe SocketText ne gére pas les sockets non bloquants. Les fonctions recv/sent sont donc à revoir. --- 2005/i/robert/src/socket/test_server.cc | 69 +++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 2005/i/robert/src/socket/test_server.cc (limited to '2005/i/robert/src/socket/test_server.cc') diff --git a/2005/i/robert/src/socket/test_server.cc b/2005/i/robert/src/socket/test_server.cc new file mode 100644 index 0000000..479dbca --- /dev/null +++ b/2005/i/robert/src/socket/test_server.cc @@ -0,0 +1,69 @@ +// 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; +} -- cgit v1.2.3