GTK--:
http://www.gtkmm.org/gtkmm2/docs/tutorial/html/
+
+Socket++:
+http://members.aon.at/hstraub/linux/socket++/
--- /dev/null
+#
+# $Id$
+#
+
+# Opciones para el compilador.
+CXXFLAGS=-ansi -pedantic -Wall -g
+LDFLAGS=-lsocket++
+
+TARGETS=udp_receiver udp_transmiter
+
+# Regla por defecto.
+all: $(TARGETS)
+
+clean:
+ rm -f $(TARGETS) *.o
--- /dev/null
+/* vim: set ts=4 sw=4 :
+ *
+ * Prueba de 'receptor' tipo broadcast con socket++.
+ *
+ * Para compilar:
+ * g++ -lsocket++ -o udp_receiver udp_receiver.cpp
+ *
+ * Necesita paquetes libsocket++ y libsocket++-dev que se pueden bajar de
+ * http://members.aon.at/hstraub/linux/socket++/
+ *
+ * $Id$
+ *
+ */
+
+#include <socket++/sockinet.h>
+#include <iostream>
+#include <sstream>
+
+using namespace std;
+
+int main(int argc, char* argv[]) {
+ // Necesita argumentos.
+ if (argc != 3) {
+ cerr << "Faltan argumentos: " << endl;
+ cerr << "\t" << argv[0] << " host port" << endl;
+ return 1;
+ }
+
+ // Obtengo puerto.
+ string host = argv[1];
+ unsigned port;
+ {
+ stringstream str(argv[2]);
+ str >> port;
+ }
+
+ char buf[4096];
+ isockinet is(sockbuf::sock_dgram);
+
+ is->bind(port);
+ is->recvtimeout(5);
+
+ cout << "Escuchando en " << is->localhost() << ':' << is->localport()
+ << "." << endl;
+
+ while (is.getline(buf, 4096)) {
+ cout << buf << endl;
+ }
+
+ return 0;
+}
--- /dev/null
+/* vim: set ts=4 sw=4 :
+ *
+ * Prueba de 'transmisor' tipo broadcast con socket++.
+ *
+ * Para compilar:
+ * g++ -lsocket++ -o udp_transmiter udp_transmiter.cpp
+ *
+ * Necesita paquetes libsocket++ y libsocket++-dev que se pueden bajar de
+ * http://members.aon.at/hstraub/linux/socket++/
+ *
+ * $Id$
+ *
+ */
+
+#include <socket++/sockinet.h>
+#include <iostream>
+#include <sstream>
+// FIXME - no portable.
+#include <unistd.h>
+
+using namespace std;
+
+int main(int argc, char* argv[]) {
+ // Necesita argumentos.
+ if (argc != 3) {
+ cerr << "Faltan argumentos: " << endl;
+ cerr << "\t" << argv[0] << " host port" << endl;
+ return 1;
+ }
+
+ // Obtengo host y puerto.
+ string host = argv[1];
+ unsigned port;
+ {
+ stringstream str(argv[2]);
+ str >> port;
+ }
+
+ osockinet os(sockbuf::sock_dgram);
+ os->connect(host.c_str(), port);
+ os->sendtimeout(5);
+
+ cout << "Transmitiendo a " << os->peerhost() << ':' << os->peerport()
+ << " desde " << os->localhost() << ':' << os->localport() << "."
+ << endl;
+
+ while (true) {
+ os << "Hola mundo!" << endl;
+ sleep(1);
+ }
+
+ return 0;
+}