// 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 #include #include int main (int argc, char **argv) { if (argc == 4) { try { // Récupération des données du fichier DataInputFile df (argv[3]); std::vector img (319680); df.read (&img[0], 319680); // Ecriture des données du fichier dans le buffer DataBuffer db (&img[0], img.size (), img.size (), DataBuffer::Image); DataBuffer dbAnswer; // Création du socket char *h = argv[1]; SocketText st (Address (h, atoi (argv[2]))); st.nonblock (); st >> dbAnswer; if (dbAnswer.type () == DataBuffer::AskImage) { // Envoie des données st << db; while (st.send () != 0); } } catch (const std::runtime_error &r) { std::cerr << argv[0] << ": " << r.what () << std::endl; return 1; } } else { std::cerr << "Syntaxe: " << argv[0] << " host port in_file" << std::endl; return 1; } }