====== Netzwerk ====== ===== TCP ===== ==== Server ==== ==== Client ==== ==== Beispiel: Echo-Server/Client ==== === Server === // main.cpp #include #include #include "EchoServer.h" int main( int argc, char *argv[] ) { QApplication app( argc, argv ); EchoServer server; if( !server.start() ) { qDebug() << "Error starting echo-server: " << server.errorString(); return 1; } qDebug() << "Server running"; return app.exec(); } // EchoServer.h #ifndef ECHOSERVER_H #define ECHOSERVER_H #include #include class EchoServer : public QTcpServer { Q_OBJECT public: EchoServer( const unsigned short int port = 12345 ); bool start(); private slots: void connectClient(); void echo(); private: unsigned short int m_port; }; #endif // ECHOSERVER_H // EchoServer.cpp #include "EchoServer.h" EchoServer::EchoServer( const unsigned short port ) : m_port( port ) { connect( this, SIGNAL( newConnection() ), this, SLOT( connectClient() ) ); } bool EchoServer::start() { return listen( QHostAddress::Any, m_port ); } void EchoServer::connectClient() { QTcpSocket *socket = nextPendingConnection(); connect( socket, SIGNAL( readyRead() ), this, SLOT( echo() ) ); connect( socket, SIGNAL( disconnected() ), socket, SLOT( deleteLater() ) ); } void EchoServer::echo() { QTcpSocket *socket = dynamic_cast( sender() ); if( socket != NULL ) { QByteArray data = socket->readAll(); socket->write( data ); } } === Client === ===== UDP ===== ==== Server ==== ==== Client ==== ==== Beispiel: Echo-Server/Client ==== === Server === === Client ===