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

手机域名做网站中国谁第一家手机软件开发的模式

手机域名做网站中国谁第一家,手机软件开发的模式,软件做网站,建手机网站公司下面是一个简单的 Qt TCP 服务器和客户端示例#xff0c;演示了如何使用 vSetDriver、vSetListener 和 vTcpServerStart 函数。假设 vSetDriver 和 vSetListener 是你定义的自定义函数。 TCP 服务器部分 tcpserver.h #ifndef TCPSERVER_H #define TCPSERVER_H#include QT…下面是一个简单的 Qt TCP 服务器和客户端示例演示了如何使用 vSetDriver、vSetListener 和 vTcpServerStart 函数。假设 vSetDriver 和 vSetListener 是你定义的自定义函数。 TCP 服务器部分 tcpserver.h #ifndef TCPSERVER_H #define TCPSERVER_H#include QTcpServer #include QTcpSocketclass TcpServer : public QTcpServer {Q_OBJECT public:explicit TcpServer(QObject *parent nullptr);void vSetDriver(QObject *driver);void vSetListener(QObject *listener);void vTcpServerStart(int port);signals:void log(QString message);void connected(quint32 addr, int port);void disconnected(quint32 addr, int port);void recvData(quint32 addr, int port, QByteArray data);protected:void incomingConnection(qintptr socketDescriptor) override;private slots:void onReadyRead();void onDisconnected();private:QObject *m_driver;QObject *m_listener;QTcpSocket *m_socket; };#endif // TCPSERVER_Htcpserver.cpp #include tcpserver.h #include QHostAddressTcpServer::TcpServer(QObject *parent) : QTcpServer(parent), m_driver(nullptr), m_listener(nullptr), m_socket(nullptr) {}void TcpServer::vSetDriver(QObject *driver) {m_driver driver; }void TcpServer::vSetListener(QObject *listener) {m_listener listener; }void TcpServer::vTcpServerStart(int port) {if (!this-listen(QHostAddress::Any, port)) {emit log(Server could not start!);} else {emit log(Server started!);} }void TcpServer::incomingConnection(qintptr socketDescriptor) {m_socket new QTcpSocket(this);connect(m_socket, QTcpSocket::readyRead, this, TcpServer::onReadyRead);connect(m_socket, QTcpSocket::disconnected, this, TcpServer::onDisconnected);m_socket-setSocketDescriptor(socketDescriptor);emit connected(m_socket-peerAddress().toIPv4Address(), m_socket-peerPort()); }void TcpServer::onReadyRead() {QByteArray data m_socket-readAll();emit recvData(m_socket-peerAddress().toIPv4Address(), m_socket-peerPort(), data); }void TcpServer::onDisconnected() {emit disconnected(m_socket-peerAddress().toIPv4Address(), m_socket-peerPort());m_socket-deleteLater(); }TCP 客户端部分 tcpclient.h #ifndef TCPCLIENT_H #define TCPCLIENT_H#include QTcpSocketclass TcpClient : public QObject {Q_OBJECT public:explicit TcpClient(QObject *parent nullptr);void connectToServer(const QString host, int port);void sendData(const QByteArray data);signals:void log(QString message);void connected();void disconnected();void recvData(QByteArray data);private slots:void onReadyRead();void onConnected();void onDisconnected();private:QTcpSocket *m_socket; };#endif // TCPCLIENT_Htcpclient.cpp #include tcpclient.hTcpClient::TcpClient(QObject *parent) : QObject(parent), m_socket(new QTcpSocket(this)) {connect(m_socket, QTcpSocket::readyRead, this, TcpClient::onReadyRead);connect(m_socket, QTcpSocket::connected, this, TcpClient::onConnected);connect(m_socket, QTcpSocket::disconnected, this, TcpClient::onDisconnected); }void TcpClient::connectToServer(const QString host, int port) {m_socket-connectToHost(host, port); }void TcpClient::sendData(const QByteArray data) {if (m_socket-state() QAbstractSocket::ConnectedState) {m_socket-write(data);} }void TcpClient::onReadyRead() {QByteArray data m_socket-readAll();emit recvData(data); }void TcpClient::onConnected() {emit log(Connected to server);emit connected(); }void TcpClient::onDisconnected() {emit log(Disconnected from server);emit disconnected(); }示例主程序 main.cpp #include QCoreApplication #include tcpserver.h #include tcpclient.hint main(int argc, char *argv[]) {QCoreApplication a(argc, argv);TcpServer server;server.vSetDriver(server);server.vSetListener(server);server.vTcpServerStart(12345);TcpClient client;client.connectToServer(127.0.0.1, 12345);client.sendData(Hello, Server!);return a.exec(); }main.pro QT core network CONFIG console CONFIG - app_bundleTEMPLATE app SOURCES main.cpp \tcpserver.cpp \tcpclient.cppHEADERS tcpserver.h \tcpclient.h解释 TcpServer 类 vSetDriver 和 vSetListener 方法用于设置驱动和监听对象。vTcpServerStart 方法用于启动服务器。incomingConnection 方法处理新的连接。onReadyRead 和 onDisconnected 方法分别处理数据接收和连接断开事件。 TcpClient 类 connectToServer 方法连接到服务器。sendData 方法发送数据。onReadyRead、onConnected 和 onDisconnected 方法分别处理数据接收、连接和断开事件。 主程序 创建并配置服务器和客户端对象。客户端连接到服务器并发送数据。 这个示例演示了如何使用 Qt 的网络模块创建一个简单的 TCP 服务器和客户端并展示了如何通过自定义的 vSetDriver、vSetListener 和 vTcpServerStart 方法进行初始化和管理。 如何测试 1. 准备项目结构 确保项目文件结构正确并包含以下文件 tcpserver.htcpserver.cpptcpclient.htcpclient.cppmain.cppmyproject.pro 2. 项目配置文件 (myproject.pro) 确保你的项目配置文件 (myproject.pro) 正确配置 QT core network CONFIG console CONFIG - app_bundleTEMPLATE app SOURCES main.cpp \tcpserver.cpp \tcpclient.cppHEADERS tcpserver.h \tcpclient.h3. 编译项目 使用 qmake 和 make 编译项目。在终端中执行以下命令 qmake myproject.pro make4. 运行测试 在编译成功后运行生成的可执行文件。以下是测试步骤 4.1 启动服务器 在一个终端中运行服务器部分 ./myproject此时服务器应该启动并监听端口 12345等待客户端连接。 4.2 启动客户端 在另一个终端中运行客户端部分 ./myproject此时客户端应该连接到服务器并发送 “Hello, Server!” 消息。 5. 验证测试结果 检查服务器输出 服务器应该输出类似以下的日志信息 Server started! connect : 127.0.0.1(12345) recv : 127.0.0.1(12345)检查客户端输出 客户端应该输出类似以下的日志信息 Connected to server6. 修改和扩展 根据需要修改和扩展你的代码。例如你可以在 recvData 信号处理函数中添加更多的处理逻辑或者在客户端中添加接收服务器响应的功能。 7. 完整代码示例 tcpserver.h #ifndef TCPSERVER_H #define TCPSERVER_H#include QTcpServer #include QTcpSocketclass TcpServer : public QTcpServer {Q_OBJECT public:explicit TcpServer(QObject *parent nullptr);void vSetDriver(QObject *driver);void vSetListener(QObject *listener);void vTcpServerStart(int port);signals:void log(QString message);void connected(quint32 addr, int port);void disconnected(quint32 addr, int port);void recvData(quint32 addr, int port, QByteArray data);protected:void incomingConnection(qintptr socketDescriptor) override;private slots:void onReadyRead();void onDisconnected();private:QObject *m_driver;QObject *m_listener;QTcpSocket *m_socket; };#endif // TCPSERVER_Htcpserver.cpp #include tcpserver.h #include QHostAddressTcpServer::TcpServer(QObject *parent) : QTcpServer(parent), m_driver(nullptr), m_listener(nullptr), m_socket(nullptr) {}void TcpServer::vSetDriver(QObject *driver) {m_driver driver; }void TcpServer::vSetListener(QObject *listener) {m_listener listener; }void TcpServer::vTcpServerStart(int port) {if (!this-listen(QHostAddress::Any, port)) {emit log(Server could not start!);} else {emit log(Server started!);} }void TcpServer::incomingConnection(qintptr socketDescriptor) {m_socket new QTcpSocket(this);connect(m_socket, QTcpSocket::readyRead, this, TcpServer::onReadyRead);connect(m_socket, QTcpSocket::disconnected, this, TcpServer::onDisconnected);m_socket-setSocketDescriptor(socketDescriptor);emit connected(m_socket-peerAddress().toIPv4Address(), m_socket-peerPort()); }void TcpServer::onReadyRead() {QByteArray data m_socket-readAll();emit recvData(m_socket-peerAddress().toIPv4Address(), m_socket-peerPort(), data); }void TcpServer::onDisconnected() {emit disconnected(m_socket-peerAddress().toIPv4Address(), m_socket-peerPort());m_socket-deleteLater(); }tcpclient.h #ifndef TCPCLIENT_H #define TCPCLIENT_H#include QTcpSocketclass TcpClient : public QObject {Q_OBJECT public:explicit TcpClient(QObject *parent nullptr);void connectToServer(const QString host, int port);void sendData(const QByteArray data);signals:void log(QString message);void connected();void disconnected();void recvData(QByteArray data);private slots:void onReadyRead();void onConnected();void onDisconnected();private:QTcpSocket *m_socket; };#endif // TCPCLIENT_H
http://www.dnsts.com.cn/news/85126.html

相关文章:

  • 服装网站建设规划方案如何做好网络营销?
  • 东莞做网站的公司徐州一级资质钢结构网架公司
  • 关于网站开发的会议纪要网页qq官网
  • 百度验证网站有什么用邢台做网站
  • sae网站备案什么样的网站需要服务器
  • 长沙那个手机建网站公司好wordpress 购买主题
  • 新媒体 网站建设 管理规范阿里云wordpress配置
  • 在互联网上建设网站可选择的方案有动漫制作专业的高职实训室
  • 建设网站的目的和内容logo免费设计图案
  • wordpress积分代码安卓优化大师最新版下载
  • 网站建设易网拓在建设厅网站上下载资质标准
  • html网站开发工具有哪些做网站前需要准备什么条件
  • jquery网站源码17一起做网站
  • 织梦网站搜索怎么做吉首做网站
  • 搜狐快站廊坊网站群建设
  • 云南网站设计联系方式wordpress怎么发布文章
  • 网站搭建网站管理wordpress htnl短代码
  • 网站建设流程怎么样cad做兼职区哪个网站
  • 装饰装修网站大全净化科技网站建设
  • oracle自带网站开发设计师网站欣赏
  • 购物网站的设计与实现论文百度广告投放技巧
  • 黄页名录网站开发多平台网页制作
  • 济南网站推广建设有限公司2015微信网站设计
  • 网站建设文章简易网站模板
  • 网站链接用处建筑企业资质
  • 南京网站推广互联网10大厂
  • 全返网站建设网站策划书范文模板
  • 50强网站建设公司想要做个公司网站
  • 多个微信管理系统台州网站排名优化价格
  • 深圳网站设计公司哪家工艺好个人建个网站需要多少钱