首页 > 技术文章 > tcpserver

mtgold 2021-12-09 09:33 原文

 class tcpserver:public QObject
 {
     Q_OBJECT
 public:
     explicit tcpserver(QObject * parent);
     ~tcpserver();
 signals:
     
 }

 

  • 构造函数

 tcpserver::tcpserver(QObject *parent):QObject(parent)
 {
     tcpNetInit();
 }
  • 析构函数

 tcpserver::~tcpserver()
 {
     server->close();
     server->deleteLater();
 }
  • 初始化

 void tcpserver::tcpNetInit()
 {
     server = new QTcpServer;
     
     localPort = 8080;
     
     server->listen(QHostAddress::Any, localPort);
     
     connect(server,SIGNAL(newConnect()),this,SLOT(serverNewConnect()));
 }
  • 新连接

 void tcpserver::serverNewConnect()
 {
     socket = server->nextPendingConnection();
     
     connect(socket,SIGNAL(readyRead()),this,SLOT(socketReadData()));
     
     connect(socket,SIGNAL(disconnected()),this,SLOT(socketDisconnected()));
 }
  • 读数据信号槽

 void tcpserver::socketReadData()
 {
     QByteArray buffer;
     buffer = socket->readAll();
     
     emit tcpDataSignal(buffer);
 }
  • 读到数据信号

 public signal:
  void tcpDataSignal(QByteArray buffer);
  • 断开连接槽函数

 void tcpserver::socketDisconnected()
 {
 
 }
  • 写数据槽函数

 void tcpserver::socketWrite(const QByteArray &data)
 {
     socket->write(data);
     
     socket->flush();
 }
  • QtLabel

 QLabel *label = new QLabel(this);
 label->resize(300,400);
 label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
 label->setText("first line\nsecond line");
 label->setAlignment(Qt::AlignBottom | Qt::AlignR)
  • c++类需加后分号 ;

 

windows 查看端口号命令

 netstat -ano

 

spring-boot -> resource ->static 目录下即为页面根目录

 

 import QtQuick 2.0
 
 Rectangle{
  id: page
  width: 320; height: 480;
  color:"lightgray"
 
  Text{
  id: helloText
  text: "Hello world!"
  y: 30
  anchors.horizontalCenter: page.horizontalCenter
  font.pointSize: 24; font.bold: true
  }
 }
 qmlscene turotial1.qml

 

qtcreater

  1. 环境变量 qt_msvc编译器

  2. build & run \ kits \ 编译器与调试器

  3. Projects \ General 取消Shadow build

  4.  

推荐阅读