/* * 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 #include #include #include #include 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 listeners; struct sockaddr_in mySin; int fd, myPort; TQSocketNotifier *sn; }; #endif