From 4057587c9bde68b85e7460ff03a97d98697142d4 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 15 Oct 2003 03:22:25 +0000 Subject: [PATCH] Se agrega ejemplo de cliente TCP con skstream. --- tests/skstream/Makefile | 11 +++++++ tests/skstream/cliente.cc | 60 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 tests/skstream/Makefile create mode 100644 tests/skstream/cliente.cc diff --git a/tests/skstream/Makefile b/tests/skstream/Makefile new file mode 100644 index 0000000..385f735 --- /dev/null +++ b/tests/skstream/Makefile @@ -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 index 0000000..0aff3d4 --- /dev/null +++ b/tests/skstream/cliente.cc @@ -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 +#include +#include + +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; +} -- 2.43.0