⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.cpp

📁 这是基于QT2.3.10的TCP服务器端程序
💻 CPP
字号:
#include <qsocket.h>#include <qserversocket.h>#include <qapplication.h>#include <qvbox.h>#include <qtextview.h>#include <qlabel.h>#include <qpushbutton.h>#include <qtextstream.h>#include <stdlib.h>class ClientSocket: public QSocket{   Q_OBJECTpublic:    ClientSocket( int sock, QObject *parent=0, const char *name=0 ):QSocket(parent, name){  line = 0;  connect(this, SIGNAL(readyRead()), SLOT(readClient()));  connect(this, SIGNAL(connectionClosed()), SLOT(connectionClosed()));  setSocket(sock);}~ClientSocket(){}private slots:   void readClient() {    while(canReadLine()) {    QTextStream os(this);    os<<line<< ":test"<<readLine();     line++;   }  }void connectionClosed(){  delete this;}private:   int line;};class SimpleServer:public QServerSocket{   Q_OBJECTpublic:   SimpleServer(QObject*parent=0):    QServerSocket(4242, 1, parent)   {        if(!ok()) {              qWarning("Failed to bind to port 4242");              exit(1);    } }   ~SimpleServer()    {    }void newConnection(int socket){  (void)new ClientSocket(socket, this);  emit newConnect();}signals:   void newConnect();};class ServerInfo:public QVBox{   Q_OBJECTpublic:    ServerInfo()     {        SimpleServer *server = new SimpleServer(this);        QString itext = QString(                             "This is a small server example.\n"                             "Connect with the client now."                           );     QLabel *lb = new QLabel(itext, this);     lb->setAlignment(AlignHCenter);     infoText = new QTextView(this);     QPushButton *quit = new QPushButton("Quit", this);     connect(server, SIGNAL(newConnect()), SLOT(newConnect()));     connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));} ~ServerInfo() { }private slots:     void newConnect()      {                infoText->append("New connection\n");       }private:    QTextView *infoText;};int main(int argc, char **argv){  QApplication app(argc, argv);  ServerInfo info;  app.setMainWidget(&info);  info.show();  return app.exec();}#include "server.moc"  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -