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

给我免费播放在线seo网站优化外包

给我免费播放在线,seo网站优化外包,电子商务网站数据库怎么做,做网站设计制作公司文章目录 TCP 通信 TCP 通信 QT主要通过QTcpSocket 和 QTcpServer两个类实现服务器和客户端的TCP 通信。 QTcpSocket 是 Qt 提供的套接字类,看用于建立、管理和操作 TCP 连接。 常用方法 方法说明connectToHost(host, port)连接到指定服务器disconnectFromHost(…

文章目录

  • TCP 通信

TCP 通信

QT主要通过QTcpSocketQTcpServer两个类实现服务器和客户端的TCP 通信。

QTcpSocket 是 Qt 提供的套接字类,看用于建立、管理和操作 TCP 连接。

常用方法

方法说明
connectToHost(host, port)连接到指定服务器
disconnectFromHost()断开连接
write(QByteArray)发送数据
readAll()读取所有可用数据
waitForConnected(int timeout)等待连接成功
waitForReadyRead(int timeout)等待数据可读

常用信号

信号触发时机
connected()连接成功
disconnected()连接断开
readyRead()有新数据可读
errorOccurred(QAbstractSocket::SocketError)发生错误

QTcpServer 是 Qt 提供的 TCP 服务器类,它主要用于监听和接受客户端连接。

常用方法

方法说明
listen(QHostAddress, quint16 port)监听指定 IP 和端口
close()关闭服务器
hasPendingConnections()是否有新的连接请求
nextPendingConnection()获取新的连接对象

常用信号

信号触发时机
newConnection()有新的客户端连接

注意:要使用这两个类需要在项目文件中添加:

QT += network

下面给出一个简单示例:
https://github.com/BinaryAI-1024/QtStudy/tree/master/network/TCP

服务器监听端口 12345,等待客户端连接。 客户端连接服务器并发送 "Hello from client!\n"。 服务器收到消息后打印,并向客户端发送 "Hello from server!\n"。 客户端收到服务器消息后打印。

服务器代码

// tcpserver.h
#ifndef TCPSERVER_H
#define TCPSERVER_H#include <QTcpServer>
#include <QTcpSocket>
#include <QObject>class TcpServer : public QObject {Q_OBJECT
public:explicit TcpServer(QObject *parent = nullptr); ~TcpServer();void startServer(quint16 port); // 启动服务器并监听指定端口private slots:void onNewConnection(); // 处理新的客户端连接void onReadyRead(); // 处理客户端发送的数据private:QTcpServer *server; // 监听 TCP 连接的服务器对象QTcpSocket *clientSocket; // 当前连接的客户端套接字
};#endif // TCPSERVER_H
// tcpserver.cpp
#include "tcpserver.h"
#include <QDebug>// 构造函数,初始化 QTcpServer 并连接 newConnection 信号
TcpServer::TcpServer(QObject *parent) : QObject(parent), server(new QTcpServer(this)) {//  // 每次有新连接可用时都会发出 newConnection() 信号connect(server, &QTcpServer::newConnection, this, &TcpServer::onNewConnection);
}// 析构函数,关闭服务器
TcpServer::~TcpServer() {server->close();
}// 启动服务器,监听指定端口
void TcpServer::startServer(quint16 port) {if (server->listen(QHostAddress::Any, port)) {qDebug() << "Server started on port" << port;} else {qDebug() << "Server failed to start!";}
}// 处理新客户端连接
void TcpServer::onNewConnection() {clientSocket = server->nextPendingConnection(); // 获取新连接的客户端套接字// 连接客户端的 readyRead 信号(有数据可读时触发)connect(clientSocket, &QTcpSocket::readyRead, this, &TcpServer::onReadyRead);// 连接客户端的 disconnected 信号(客户端断开连接时触发)connect(clientSocket, &QTcpSocket::disconnected, clientSocket, &QTcpSocket::deleteLater);qDebug() << "New client connected!";clientSocket->write("Hello from server!\n"); // 发送欢迎消息给客户端
}// 处理客户端发送的数据
void TcpServer::onReadyRead() {QByteArray data = clientSocket->readAll(); // 读取客户端数据qDebug() << "Received from client:" << data;
}

客户端代码

// tcpclient.h
#ifndef TCPCLIENT_H
#define TCPCLIENT_H#include <QTcpSocket>
#include <QObject>class TcpClient : public QObject {Q_OBJECT
public:explicit TcpClient(QObject *parent = nullptr);~TcpClient();void connectToServer(const QString &host, quint16 port); // 连接到指定服务器private slots:void onConnected(); // 处理成功连接到服务器的事件void onReadyRead(); // 处理从服务器接收的数据private:QTcpSocket *socket; // 客户端 TCP 套接字对象
};#endif // TCPCLIENT_H
// tcpclient.cpp
#include "tcpclient.h"
#include <QDebug>// TcpClient 构造函数,初始化 QTcpSocket 并连接信号槽
TcpClient::TcpClient(QObject *parent) : QObject(parent), socket(new QTcpSocket(this)) {connect(socket, &QTcpSocket::connected, this, &TcpClient::onConnected); // 连接成功信号connect(socket, &QTcpSocket::readyRead, this, &TcpClient::onReadyRead); // 读取数据信号
}// TcpClient 析构函数,关闭套接字
TcpClient::~TcpClient() {socket->close();
}// 连接到服务器的指定主机和端口
void TcpClient::connectToServer(const QString &host, quint16 port) {socket->connectToHost(host, port);
}// 处理成功连接到服务器的事件
void TcpClient::onConnected() {qDebug() << "Connected to server!";socket->write("Hello from client!\n"); // 发送消息给服务器
}// 处理从服务器接收的数据
void TcpClient::onReadyRead() {QByteArray data = socket->readAll();qDebug() << "Received from server:" << data;
}

主函数

// main.cpp
#include <QCoreApplication>
#include "tcpserver.h"
#include "tcpclient.h"int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 启动服务器TcpServer server;server.startServer(12345);// 启动客户端,连接到服务器TcpClient client;client.connectToServer("127.0.0.1", 12345);return a.exec();
}

结果:

Server started on port 12345
New client connected!
Connected to server!
Received from server: "Hello from server!\n"
Received from client: "Hello from client!\n"
http://www.dtcms.com/wzjs/155751.html

相关文章:

  • 快云助手网站建设视频应用商店aso优化
  • 网站建设框架注意事项拉新奖励的app排行
  • 手机网站刷排名调研报告万能模板
  • 网站外链内链怎么做企业软文范例
  • 企业网站建设原则是( )河南今日头条新闻
  • 专业的深圳网站建设公司快速网站排名提升工具
  • 做视频网站的上市公司网络营销的六大特征
  • 做公司网站比较好的如何提升网站seo排名
  • 深圳p2p网站开发深圳企业网站制作
  • 网站建设招标公告公关公司一般收费标准
  • 济南产品网站建设外包seo优化专员工作内容
  • 云南省建设造价协会网站营销广告语
  • 福州网站制作专业网站首页快速收录
  • 网站建设合同规范网站推广的基本方法有
  • 沈阳专业网站制作深圳网站关键词优化推广
  • 网站开发 报价去了外包简历就毁了吗
  • 网站微信认证费用吉林seo基础知识
  • 江苏常州青之峰做网站湖北百度推广公司
  • 企业建立网站需要提供什么外包公司什么意思
  • 群晖做网站服务器速度快吗肇庆网站快速排名优化
  • 网站怎么做才美观广告推广策划
  • 个人网站网站建设网络运营具体做什么
  • 做网站建设怎么赚钱百度快照手机入口
  • 徐州东站网址大全名称
  • 个人怎样做旅游网站成都排名推广
  • 仿摄影网站河南省疫情最新情况
  • 移动端网站开发软件线上推广有哪些渠道
  • 环球资源外贸平台怎么样江苏seo技术教程
  • 网站建设时应该做的优化常用的网络营销方法有哪些
  • 找个靠谱网站做推广自媒体营销模式有哪些