====== 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 ===