class TClient: public QTcpSocketclass TServer: public QTcpServer
QTcpServer::incomingConnection()
void QTcpServer::incomingConnection(int socketDescriptor){#if defined (QTCPSERVER_DEBUG) qDebug("QTcpServer::incomingConnection(%i)", socketDescriptor);#endif // создается новый сокет, здесь хотелось бы создавать нового TClient QTcpSocket *socket = new QTcpSocket(this); // установка дескриптора, полученного от системы останется socket->setSocketDescriptor(socketDescriptor); // добавление нового сокета в очередь соединений, откуда он будет вынут QTcpServer::nextPendingConnection() d_func()->pendingConnections.append(socket);}
void QTcpServerPrivate::readNotification()
if (pendingConnections.count() >= maxConnections) {
C++ (Qt)void QTcpServer::incomingConnection(int socketDescriptor){#if defined (QTCPSERVER_DEBUG) qDebug("QTcpServer::incomingConnection(%i)", socketDescriptor);#endif // создается новый сокет, здесь хотелось бы создавать нового TClient QTcpSocket *socket = new QTcpSocket( 0 ); // установка дескриптора, полученного от системы останется socket->setSocketDescriptor(socketDescriptor); emit clientConnected( socket ); // или TClientThread *thread = new TClientThread( socket ); thread->start();}
QTcpSocket *QTcpServer::nextPendingConnection(){ Q_D(QTcpServer); if (d->pendingConnections.isEmpty()) return 0; if (!d->socketEngine->isReadNotificationEnabled()) d->socketEngine->setReadNotificationEnabled(true); return d->pendingConnections.takeFirst();}
1>netserver.obj : error LNK2019: unresolved external symbol "public: unsigned short __thiscall QAbstractSocketEngine::localPort(void)const " (?localPort@QAbstractSocketEngine@@QBEGXZ) referenced in function "public: bool __thiscall TNetServer::listen(class QHostAddress const &,unsigned short)" (?listen@TNetServer@@QAE_NABVQHostAddress@@G@Z)1>qabstractsocket.obj : error LNK2001: unresolved external symbol "public: unsigned short __thiscall QAbstractSocketEngine::localPort(void)const " (?localPort@QAbstractSocketEngine@@QBEGXZ)