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

做悬赏任务的网站如何自己搭建一个网站

做悬赏任务的网站,如何自己搭建一个网站,信丰网站制作,高端网站建设公司价格QLocalSocket QLocalServer 逻辑:首先一个新的实例启动时,将尝试连接到同一个本地服务器,如果连接失败,则表示第一个实例进程,创建一个本地服务器;否则,拉起已打开的实例进程。 main.cpp #i…

QLocalSocket + QLocalServer

逻辑:首先一个新的实例启动时,将尝试连接到同一个本地服务器,如果连接失败,则表示第一个实例进程,创建一个本地服务器;否则,拉起已打开的实例进程。

main.cpp

#include <QApplication>
#include "main_windows.h"
#include "single_application.h"//QT启动屏蔽cmd
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")int main(int argc, char* argv[])
{//QApplication a(argc, argv);SingleApplication singleApplication(argc, argv);if (!singleApplication.IsRunning()){MainWindow mainWindow;mainWindow.show();singleApplication.m_mainWindow = &mainWindow;return SingleApplication::exec();}return 0;
}

single_application.h

//
// Created by zhe.xiao on 2024/3/1.
//#pragma once#include <QApplication>
#include <QWidget>
#include <QLocalServer>
#include <QLocalSocket>class SingleApplication : public QApplication
{
Q_OBJECT
public:SingleApplication(int& argc, char* argv[]);//是否已有实例在运行bool IsRunning();private://初始化本地连接void InitLocalConnection();//创建服务端void CreateLocalServer();//激活窗口void ActivateWindow();public://MainWindow指针QWidget* m_mainWindow;private://运行状态bool m_isRunning;//是否已有实例在运行QLocalServer* m_localserver;//本地socket ServerQString m_applicationName;//连接超时时间int m_timeout = 1000;private slots://有新连接时触发void OnNewConnection();
};

single_application.cpp

//
// Created by zhe.xiao on 2024/3/1.
//#include <QFileInfo>
#include "single_application.h"
#include <QDebug>SingleApplication::SingleApplication(int& argc, char* argv[]) : QApplication(argc, argv)
{m_isRunning = false;m_mainWindow = nullptr;m_localserver = nullptr;m_applicationName = QFileInfo(QApplication::applicationFilePath()).fileName();qDebug() << "m_serverName:" << m_applicationName;InitLocalConnection();
}/*** 通过socket通讯实现程序单实例运行,* 初始化本地连接,如果连接不上server,则创建,否则退出*/
void SingleApplication::InitLocalConnection()
{m_isRunning = false;//尝试连接本地服务器,如果连上了就触发OnNewConnection,QLocalSocket socket;socket.connectToServer(m_applicationName);if (socket.waitForConnected(m_timeout)){m_isRunning = true;return;}//首次打开exe连接不上,则需要先创建一个本地服务器CreateLocalServer();
}void SingleApplication::CreateLocalServer()
{m_localserver = new QLocalServer(this);connect(m_localserver, &QLocalServer::newConnection, this, &SingleApplication::OnNewConnection);if (!m_localserver->listen(m_applicationName)){// 此时监听失败,可能是程序崩溃时,残留进程服务导致的,移除if (m_localserver->serverError() == QAbstractSocket::AddressInUseError){QLocalServer::removeServer(m_applicationName);m_localserver->listen(m_applicationName); //重新监听}}
}/*** 通过socket通讯实现程序单实例运行,监听到新的连接【即重新双击exe】时触发该函数.*/
void SingleApplication::OnNewConnection()
{QLocalSocket* localSocket = m_localserver->nextPendingConnection();if (localSocket){localSocket->waitForReadyRead(m_timeout * 2);delete localSocket;//激活窗口ActivateWindow();}
}void SingleApplication::ActivateWindow()
{if (m_mainWindow != nullptr){m_mainWindow->raise();m_mainWindow->showNormal();m_mainWindow->activateWindow();}
}bool SingleApplication::IsRunning()
{return m_isRunning;
}
http://www.mmbaike.com/news/98065.html

相关文章:

  • 最好的网站建设团队网站推广技巧有哪些
  • 浙江省电子商务网站建设google seo 优化招聘
  • wordpress 163 smtp郑州seo顾问
  • 上海网站建设网站制作网络营销企业案例分析
  • 品牌注册商标查询seo关键词优化系统
  • 电子商务网站开发平台营销型企业网站有哪些
  • 域名是什么有什么用贵阳网站优化公司
  • 杭州旅游 网站建设网络营销的传播手段
  • 英雄联盟网页设计代码页面seo是什么意思
  • cms建站详细教程网络营销技术
  • 不限流量网站空间网易企业邮箱
  • asp响应式h5网站源码产品推广计划怎么写
  • ps可以做网站动态图市场调研报告500字
  • 网站建设需要的一些技术seo网站优化流程
  • 惠州做网站 百度优化google推广平台怎么做
  • 网站页面设计说明怎么写百度推广投诉热线
  • 现在的公司都有自己的网站吗淘宝seo排名优化的方法
  • 23个超好玩的网页小游戏临沂seo排名外包
  • 做服装要看国外哪些网站2021年网络营销考试题及答案
  • 衢州做外贸网站的公司个人博客网页设计html
  • 烟台市铁路建设管理局网站百度下载安装到桌面
  • 做自媒体必备的8个网站东莞做网站推广的公司
  • 有哪些做壁纸的网站好seo平台是什么意思
  • 怎么用服务器做局域网网站seo行业网
  • 池州市建设厅官方网站免费网站制作成品
  • wordpress主题开发网站投放广告的网站
  • 网站托管服务协议兰州seo优化公司
  • 嘉兴制作网站软文是什么意思?
  • 建设一个班级网站的具体步骤网址浏览大全
  • 高端平面网站常见的网络营销方式有哪几种