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

做二手网站赚钱不贵州省遵义市住房城乡建设局网站

做二手网站赚钱不,贵州省遵义市住房城乡建设局网站,江苏南京建设厅网站,网站设计与建设word设计理念目录 0.概述1.UDP Socket1.核心API概览2.回显服务器3.回显客户端 0.概述 要使用Qt中有关网络编程的API,需要添加network模块 1.UDP Socket 1.核心API概览 主要的类有两个:QUdpSocket和QNetworkDatagramQUdpSocket表⽰⼀个UDP的socket⽂件 bind(const …

目录

  • 0.概述
  • 1.UDP Socket
    • 1.核心API概览
    • 2.回显服务器
    • 3.回显客户端


0.概述

  • 要使用Qt中有关网络编程的API,需要添加network模块

1.UDP Socket

1.核心API概览

  • 主要的类有两个:QUdpSocketQNetworkDatagram
  • QUdpSocket表⽰⼀个UDP的socket⽂件
    • bind(const QHostAddress&, quint16):绑定指定的端口号
      • 成员方法
      • 对应原生API:bind()
    • receiveDatagram():返回QNetworkDatagram,读取⼀个UDP数据报
      • 成员方法
      • 对应原生API:recvfrom()
    • writeDatagram(const QNetworkDatagram&):发送⼀个UDP数据报
      • 成员方法
      • 对应原生API:sendto()
    • readyRead():在收到数据并准备就绪后触发
      • 信号
      • 类似于IO多路复用的通知机制
  • QNetworkDatagram表⽰⼀个UDP数据报
    • QNetworkDatagram(const QByteArray&, const QHostAddress&, quint16)
      • 通过QByteArray,⽬标IP地址,⽬标端⼝号构造⼀个UDP数据报
      • 通常⽤于发送数据时
    • data():获取数据报内部持有的数据,返回`QByteArray
    • senderAddress():获取数据报中包含的对端的IP地址
    • senderPort():获取数据报中包含的对端的端⼝号

2.回显服务器

  • ⼀般来说,要先连接信号槽,再绑定端⼝
    • 如果顺序反过来,可能会出现端⼝绑定好了之后,请求就过来了,此时还没来得及连接信号槽,那么这个请求就有可能错过了
  • 示例
    // 构造函数中
    {socket = new QUdpSocket(this);connect(socket, &QUdpSocket::readyRead, this, &Widget::ProcessRequest);// 绑定端口号.if (!socket->bind(QHostAddress::Any, 2333)){// 绑定失败!QMessageBox::critical(this, "服务器启动出错", socket->errorString());return;}
    }void Widget::ProcessRequest()
    {// 1. 读取请求并解析.const QNetworkDatagram& req = socket->receiveDatagram();QString request = req.data();// 2. 根据请求计算响应const QString& response = Process(request);// 3. 把响应写回给客户端.QNetworkDatagram resp(response.toUtf8(), req.senderAddress(),req.senderPort());socket->writeDatagram(resp);// 把这次交互的信息, 显示到界面上.QString log = "[" + req.senderAddress().toString() + ":" + QString::number(req.senderPort()) + "] req: " + request + ", resp: " + response;ui->listWidget->addItem(log);
    }QString Widget::Process(const QString &request)
    {return request;
    }
    

3.回显客户端

// 构造函数中
{socket = new QUdpSocket(this);// 通过信号槽, 来处理服务器返回的数据.connect(socket, &QUdpSocket::readyRead, this, &Widget::ProcessResponse);
}void Widget::on_pushButton_clicked()
{// 1. 获取到输入框的内容const QString& text = ui->lineEdit->text();// 2. 构造 UDP 的请求数据QNetworkDatagram req(text.toUtf8(), QHostAddress(SERVER_IP), SERVER_PORT);// 3. 发送请求数据socket->writeDatagram(req);// 4. 把发送的请求也添加到列表框中.ui->listWidget->addItem("客户端说: " + text);// 5. 把输入框的内容也清空一下.ui->lineEdit->setText("");
}// 通过这个函数来处理收到的响应
void Widget::ProcessResponse()
{// 1. 读取到响应数据const QNetworkDatagram& resp = socket->receiveDatagram();QString response = resp.data();// 2. 把响应数据显示到界面上.ui->listWidget->addItem("服务器说: " + response);
}
http://www.yayakq.cn/news/461857/

相关文章:

  • dz地方门户网站制作实木复合门网站建设价格
  • 广州做网站哪个好沈阳男科医院哪家好些
  • 私人找人做网站网页设计模板素材代码
  • 重庆php网站建设微信小程序怎么做开发
  • 我做服装设计师的 求推荐资源网站怎么创造一个网站
  • 珠海网站设计苏州网建公司
  • 甘肃省建设工程安全质量监督局网站app分销系统开发
  • 长乐区住房和城乡建设局网站wordpress翻页数字
  • 程序员自己做网站怎么能来钱懒人网页编辑器手机版
  • 有什么好看的网站资源网页设计心得5000字
  • 网站建设公司都会有哪些花销superstore wordpress下载
  • 设计云网站建设东莞网站建设方案表
  • 黄石网站建设net后缀的可以做网站吗
  • 聊城做手机网站建设找一个免费域名的网站
  • 内蒙古建设工程质监站网站怎么改网站域名
  • 企业网站可以个人备案wordpress数据库下载
  • 每一个网站都是响应式吗wordpress导入不了
  • 组建网站开发团队优秀的电商app设计网站
  • 射阳做网站甘州区住房和城乡建设局网站
  • 网站建设销售是什么郴州吧百度贴吧
  • win7 iis建立网站网站建设丨金手指排名
  • 网站正在建设中 代码php做的网站如何该样式
  • 有哪些做汽配的网站有没有帮忙做推广的网站
  • 遂宁商城网站建设1年网站
  • 建设好的网站怎么分享福州志愿者官方网站怎么做
  • 墟沟企业建站价格表企业管理咨询培训
  • 丹徒网站建设代理商单位网站建设费用账务处理
  • 重庆做网站公司餐厅网站建设什么科目
  • wordpress网站打开很卡wordpress网站转app
  • wordpress 不同站点1688货源网一件代发童装