当前位置:   article > 正文

QT多线程服务器、客户端_qt实现客户端和服务端写在同一个程序中多线程

qt实现客户端和服务端写在同一个程序中多线程

程序

服务器

dialog类(界面编写)

.h
#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include "timeserver.h"
#include <QMessageBox>

class Dialog : public QDialog
{
   
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
private:
    QLabel *label1;
    QLabel *label2;
    QPushButton *quitBtn;
public slots:
    void slotShow();
private:
    TimeServer *timeServer;
    int count;
};

#endif // DIALOG_H
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
.cpp
#include "dialog.h"
#include <QHBoxLayout>
#include <QVBoxLayout>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
   
    setWindowTitle("多线程时间服务器");
    label1=new QLabel("服务器端口");
    label2=new QLabel;
    quitBtn=new QPushButton("退出");
    QHBoxLayout *BtnLayout =new QHBoxLayout;
    BtnLayout->addStretch(1);
    BtnLayout->addWidget(quitBtn);
    BtnLayout->addStretch(1);
    QVBoxLayout *mainLayout=new QVBoxLayout(this);
    mainLayout->addWidget(label1);
    mainLayout->addWidget(label2);
    mainLayout->addLayout(BtnLayout);
    connect(quitBtn,SIGNAL(clicked()),this,SLOT(close()));
    count=0;
    timeServer = new TimeServer(this);
    if(!timeServer->listen())
    {
   
        QMessageBox::critical(this,tr("多线程时间服务器"),
        tr("无法启动服务器:%1.").arg(timeServer->errorString()));//无法监听报错
        close();
        return;
    }
    label1->setText(tr<
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/187341
推荐阅读
相关标签
  

闽ICP备14008679号