#ifndef MESSAGELISTENER_H #define MESSAGELISTENER_H #include #include #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