diff options
Diffstat (limited to 'MessageListener.h')
| -rw-r--r-- | MessageListener.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/MessageListener.h b/MessageListener.h new file mode 100644 index 0000000..b6fb143 --- /dev/null +++ b/MessageListener.h @@ -0,0 +1,47 @@ +#ifndef MESSAGELISTENER_H +#define MESSAGELISTENER_H + +#include <QObject> +#include <QAbstractSocket> + +#define DEFAULT_PORT 3112 + +class QTcpServer; +class QTcpSocket; +class QString; +class QHostAddress; + +class MessageListener : public QObject +{ + Q_OBJECT + +public: + MessageListener(QObject *parent = 0); + ~MessageListener(); + QString remoteHost() const; + +public slots: + bool startListener(quint16 port = DEFAULT_PORT); + void stopListener(); + void closeConnection(); + bool writeMessage(const QString &text); + void connectToHost(const QString &address, quint16 port = DEFAULT_PORT); + +signals: + void receivedMessage(const QString text); + void connected(); + void disconnected(); + void connectionFailed(); + +private: + QTcpServer *listener; + QTcpSocket *connection; + inline void setupConnections(); + +private slots: + void receivedConnection(); + void receivedData(); + void handleError(QAbstractSocket::SocketError error); +}; + +#endif |
