]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
Se agrega ejemplo de cliente TCP con skstream.
authorLeandro Lucarella <llucax@gmail.com>
Wed, 15 Oct 2003 03:22:25 +0000 (03:22 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Wed, 15 Oct 2003 03:22:25 +0000 (03:22 +0000)
tests/skstream/Makefile [new file with mode: 0644]
tests/skstream/cliente.cc [new file with mode: 0644]

diff --git a/tests/skstream/Makefile b/tests/skstream/Makefile
new file mode 100644 (file)
index 0000000..385f735
--- /dev/null
@@ -0,0 +1,11 @@
+#
+# $Id$
+#
+
+# Opciones para el compilador.
+CXXFLAGS=-ansi -pedantic -Wall -g3 `skstream-config --cflags`
+LDFLAGS=`skstream-config --libs`
+
+# Regla por defecto.
+cliente: cliente.cc
+
diff --git a/tests/skstream/cliente.cc b/tests/skstream/cliente.cc
new file mode 100644 (file)
index 0000000..0aff3d4
--- /dev/null
@@ -0,0 +1,60 @@
+/* vim: set ts=4 sw=4 :
+ *
+ * Prueba de cliente echo con skstream.
+ *
+ * Para compilar:
+ *   g++ `skstream-config --cflags --libs` -o cliente cliente.cc
+ *
+ * Necesita paquete libskstream-0.2 y libskstream-dev
+ * 
+ */
+
+#include <skstream/skstream.h>
+#include <iostream>
+#include <sstream>
+
+using namespace std;
+
+int main(int argc, char* argv[]) {
+       // Necesita argumentos.
+       if (argc < 3 || argc > 4) {
+               cerr << "Faltan argumentos: " << endl;
+               cerr << "\t" << argv[0] << " host port" << endl;
+               cerr << endl;
+               cerr << "Por la entrada estándar se ingresan los datos a mandar "
+                       "al servidor." << endl;
+               cerr << "Cuando se escribe toda la petición, con Ctrl-D envía los "
+                       "datos." << endl;
+               return 1;
+       }
+       
+       // Obtengo host y puerto.
+       string host = argv[1];
+       int port;
+       {
+               stringstream str(argv[2]);
+               str >> port;
+       }
+
+       // Socket TCP.
+       tcp_socket_stream sock(host, port);
+       if (!sock.is_open()) {
+               cerr << "No se pudo abrir el socket (error " << sock.getLastError()
+                       << ")." << endl;
+               return 2;
+       }
+
+       char buff[4096];
+
+       // Envio pedido.
+       while (cin.getline(buff, 4096)) {
+               sock << buff << endl;
+       }
+
+       // Recibo respuesta.
+       while (sock.getline(buff, 4096)) {
+               cout << buff << endl;
+       }
+
+       return 0;
+}