C++ (Qt)#include "mainwindow.h"#include <QTextCodec>#include <QApplication>//#include <QMainWindow>int main(int argc, char *argv[]){QTextCodec * myTextCodec = QTextCodec::codecForName("cp1251");QTextCodec::setCodecForLocale( myTextCodec );QTextCodec::setCodecForTr( myTextCodec );QTextCodec::setCodecForCStrings( myTextCodec ); QApplication a(argc, argv); QMainWindow *w = new QMainWindow; w->setGeometry(0,0,0,0); TripServer server; if( !server.listen( QHostAddress::Any, 6178 ) ) // Запуск сервера return 1; w.show(); // если убрать строку, то программа принимает тоьлко 1 сообщение return a.exec();}
... MyClass myclass; // реализуеш у себя где-то в *.h и *.cpp класс унаследованный от QObject в котором есть слот, который что-то там будет делать. TripServer server; connect(&server, SIGNAL(newConnection()), &myclass, SLOT(mySlot())); if( !server.listen( QHostAddress::Any, 6178 ) ) // Запуск сервера return 1; return a.exec();...
class MyClass: public QObject{ Q_OBJECTpublic: MyClass::Myclass(QObject *parent = 0) : QObject(parent) { server = new QTCPServer(this); connect(server, SIGNAL(newConnection()), this, SLOT(mySlot())); if (!server->listen(QHostAddress::Any, 6178)) { qDebug() << "Listen is failure"; return; } }private slots: void mySlot() { // тут твоя реализация по обработке входящих соединений и т.п. }private: QTCPServer *server;}
int main(int argc, char *argv[]){ QCoreApplication app(argc, argv); MyClass myclass; return app.exec();}
C++ (Qt)#ifndef MAINWINDOW_H#define MAINWINDOW_H #include <QTcpServer>#include <QTcpSocket> class ClientSocket : public QTcpSocket{ Q_OBJECTpublic: ClientSocket(QObject *parent = 0); int id; QString strA, strB;private slots: void readClient();};class TripServer : public QObject{ Q_OBJECTpublic: TripServer( QObject *parent = 0 ) : QObject( parent ) { server = new QTcpServer(this); connect(server, SIGNAL(newConnection()), this, SLOT(mySlot())); server->listen(QHostAddress::Any, 6178); }private: QTcpServer *server;private slots: void mySlot(int socketID){ ClientSocket *socket = new ClientSocket( this ); socket->setSocketDescriptor( socketID ); }}; #endif // MAINWINDOW_H