+/* vim: set ts=4 sw=4 :
+ *
+ * Prueba de 'servidor' echo tipo broadcast con skstream.
+ *
+ * Para compilar:
+ * g++ `skstream-config --cflags --libs` -o servidor servidor.cpp
+ *
+ * Necesita paquete libskstream-0.2 y libskstream-dev
+ *
+ * $Id$
+ *
+ */
+
+#include <skstream/skstream.h>
+#include <iostream>
+#include <sstream>
+
+using namespace std;
+
+//class test {
+// public:
+// int i;
+ //test(void): i(10) {}
+ //test(int i): i(i) {}
+//};
+
+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;
+ }
+
+//test t;
+//cerr << t.i << endl;
+//udp_socket_stream s;
+//s.is_open();
+
+ // Obtengo host y puerto.
+ string host = argv[1];
+ unsigned port;
+ {
+ stringstream str(argv[2]);
+ str >> port;
+ }
+
+ // Socket TCP.
+ udp_socket_stream socket;
+ if (!socket.is_open()) {
+ cerr << "No está conectado." << endl;
+ }
+ if (!socket.setTarget(host, port)) {
+ //if (!sock.is_open()) {
+ cerr << "No se pudo configurar el destino (" << host << ":" << port
+ << ")." << ")." << endl;
+ return 2;
+ }
+
+ char buff[4096];
+
+ // Envio pedido.
+ while (cin.getline(buff, 4096)) {
+ socket << buff << endl;
+ }
+
+ return 0;
+}