/* * Simple Network Support * Install a listening socket; receive positions on incoming * connections (incoming positions are treated as if pasted in) */ #ifndef _NETWORK_H_ #define _NETWORK_H_ #include <sys/types.h> #include <netinet/in.h> #include <tqobject.h> #include <tqptrlist.h> #include <tqsocketnotifier.h> class Listener { public: Listener(const char*,int,struct sockaddr_in,bool=true); char host[100]; int port; struct sockaddr_in sin; bool reachable; }; class Network: public TQObject { Q_OBJECT public: enum { defaultPort = 23412 }; /* install listening TCP socket on port */ Network(int port = defaultPort); ~Network(); bool isOK() { return (fd>=0); } void addListener(const char* host, int port); void broadcast(const char* pos); signals: void gotPosition(const char* pos); private slots: void gotConnection(); private: bool sendString(struct sockaddr_in sin, char* str, int len); TQPtrList<Listener> listeners; struct sockaddr_in mySin; int fd, myPort; TQSocketNotifier *sn; }; #endif