#include "mainwnd.h" MainWnd::MainWnd() { pSrv = new QTcpServer( this ); connect( pSrv, SIGNAL(newConnection()), this, SLOT(newConnection())); pSrv->listen( QHostAddress::Any, 7317 ); } MainWnd::~MainWnd() { } void MainWnd::newConnection() { while( pSrv->hasPendingConnections() ) { QTcpSocket *pSock = pSrv->nextPendingConnection(); Gats::GatsStream *pGats = new Gats::GatsStream( *pSock ); connect( pSock, SIGNAL(readyRead()), pGats, SLOT(readObject()) ); connect( pGats, SIGNAL(objectRead( Gats::Object * )), this, SLOT(objectRead( Gats::Object * ))); } } void MainWnd::objectRead( Gats::Object *pObj ) { ((Gats::GatsStream *)sender())->writeObject( pObj ); Gats::Object *pCopy = pObj->clone(); delete pObj; ((Gats::GatsStream *)sender())->writeObject( pCopy ); delete pCopy; }