当前位置: 首页 > news >正文

数码网站建设总体目标品牌营销型网站建设策划

数码网站建设总体目标,品牌营销型网站建设策划,连云区住房和城乡建设局网站,企业宣传型网站建设1、简介 简单实现控制TCP服务器获取连接的套接字。点击断开服务器即可关闭所有连接,最大连接数量为5个。 声明源文件 #include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {//设置固定大小setFixedSize(1024,600);b…

1、简介

简单实现控制TCP服务器获取连接的套接字。点击断开服务器即可关闭所有连接,最大连接数量为5个。

声明源文件

#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{//设置固定大小setFixedSize(1024,600);btnClearText = new QPushButton(this);btnCtrlServer = new QPushButton(this);textRecvBrowser = new QTextBrowser(this);//按键清空btnClearText->setGeometry(48,40,200,60);btnClearText->setText("清空浏览");//设置控制按钮btnCtrlServer->setGeometry(48, 40+40+30 , 200, 60);btnCtrlServer->setText("打开服务");//浏览处理textRecvBrowser->setGeometry(300, 40, 649, 500);//连接处理QObject::connect(btnClearText, SIGNAL(clicked()), this, SLOT(on_pushButton_textRecvBrowser()));QObject::connect(btnCtrlServer, SIGNAL(clicked()),this, SLOT(on_pushButton_ctrlTcpServer()));//TCP服务器处理tcpServer = new QTcpServer(this);QObject::connect(tcpServer, SIGNAL(newConnection()),this, SLOT(on_tcpServer_newConnectCallHandler()));//最大连接数量5个tcpServer->setMaxPendingConnections(5);tcpServer->listen(QHostAddress("127.0.0.1"), 80);if(tcpServer->isListening())btnCtrlServer->setText("关闭服务");elsebtnCtrlServer->setText("打开服务");}MainWindow::~MainWindow()
{delete btnClearText;delete btnCtrlServer;delete textRecvBrowser;delete tcpServer;
}//清空浏览记录
void MainWindow::on_pushButton_textRecvBrowser()
{textRecvBrowser->clear();
}//
void MainWindow::on_pushButton_ctrlTcpServer()
{//状态查询if(tcpServer->isListening()){//遍历所有数据foreach(QTcpSocket* tcpSocket, tcpSocketList){if(tcpSocket->state() == QAbstractSocket::ConnectedState)tcpSocket->close();//关闭连接}//tcpServer->close();}elsetcpServer->listen(QHostAddress::Any, 80);//监听状态if(tcpServer->isListening())btnCtrlServer->setText("关闭服务");elsebtnCtrlServer->setText("打开服务");
}//IPv6转换IPv4
QString convert_to_ipv4_addr(QHostAddress &addr)
{quint32  addr_origin = addr.toIPv4Address();QHostAddress addr_host = QHostAddress(addr_origin);QString  addr_str = addr_host.toString();return addr_str;
}//新建连接
void MainWindow::on_tcpServer_newConnectCallHandler()
{while (tcpServer->hasPendingConnections()) {//获取连接QTcpSocket *tcpSocket = tcpServer->nextPendingConnection();//添加指针列表tcpSocketList.append(tcpSocket);//显示具体连接信息QHostAddress ipv6 = tcpSocket->peerAddress();textRecvBrowser->append(convert_to_ipv4_addr(ipv6) + ":" + QString::number(tcpSocket->peerPort()));//设置连接QObject::connect(tcpSocket, SIGNAL(readyRead()),this, SLOT(on_tcpSocket_readyRead()));QObject::connect(tcpSocket, SIGNAL(disconnected()), this, SLOT(on_tcpSocket_disconnected()));//qDebug() << "当前连接数量" << tcpSocketList.size();}}void MainWindow::on_tcpSocket_disconnected()
{QTcpSocket* socket = qobject_cast<QTcpSocket *>(sender()); //当前信息//断开所有连接if(socket->state() == QAbstractSocket::ConnectedState)socket->close();//关闭连接//断开连接则清除tcpSocketList.removeOne(socket);textRecvBrowser->append("已断开连接");qDebug() << "当前连接数量" << tcpSocketList.size();
}//
void MainWindow::on_tcpSocket_readyRead()
{QTcpSocket* socket = qobject_cast<QTcpSocket *>(sender());  // 取得当前socket对象socket->write("Hello",5);
//    QMessageBox msgBox(this);//    msgBox.setText("我是准备好读数据");
//    msgBox.setWindowTitle("提示");
//    msgBox.exec();
}

声明的头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QPushButton>
#include <QTextBrowser>
#include <QTcpServer>
#include <QTcpSocket>
#include <QHostAddress>
#include <QMessageBox>
#include <QDebug>class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_textRecvBrowser();void on_pushButton_ctrlTcpServer();void on_tcpServer_newConnectCallHandler();void on_tcpSocket_readyRead();void on_tcpSocket_disconnected();
private:QList<QTcpSocket *>  tcpSocketList;QPushButton   *btnCtrlServer = nullptr;QPushButton   *btnClearText = nullptr;QTextBrowser  *textRecvBrowser = nullptr;QTcpServer    *tcpServer = nullptr;
};
#endif // MAINWINDOW_H
http://www.yayakq.cn/news/134023/

相关文章:

  • 新手建站详细步骤建设项目环保竣工信息公开网站
  • 设计公司网站设计报价明细表精品源码网
  • 网站开发工程师岗位职责要求seo网站推广工具
  • win7 网站配置在线网页代理pc
  • 用wordpress建公司网站步骤国家建筑工程网查询证书
  • 威海建设集团网站首页东莞网站建设渠道
  • 陕西东盟建设工程有限公司网站自动更新的网站建设
  • 科技局网站建设方案苏州做网站建设公司
  • 做网站前两个月应该干什么佛山定制网页设计
  • 数据网站建设工具模板动漫网站源码免费
  • 东莞做阀门的网站如何进行主题网站的资源建设
  • 超炫个人业务网站源码搜索引擎推广的特点
  • 旅游网站制作模板在网站和网页的区别
  • 平邑县建设局网站网站域名注册费用
  • 成都网站制作公司电话高新区旅游网站案例分析
  • 怎么做网站埋点怎么查找网站备案主体
  • 动画视频模板网站厦门网站建设 金猪
  • h5网站建设的具体内容elementui 企业官网模板
  • 工程建设比选公告固价方式网站易售乐服装销售管理软件
  • 淘宝客怎样建网站博客网站开发流程
  • 360网站拦截做保定商城网站建设
  • 给自己的爱人做网站投资类wordpress主题
  • 西安 h5网站建设wordpress 自带模板
  • 安全网站建设报价清单企业培训网站
  • 工程建设动态管理网站企业免费建网站
  • 学做网站需要什么基础做设计必须知道的几个网站吗
  • 昆明广告网站制作营销型网站核心要素有哪些
  • 寿光做网站m0536莱芜论坛莱芜话题吕金梦
  • 搜索网站的设计与建设网页首页设计教程
  • 免费vps试用一年网站关键词优化有用吗