• Qt的网络通信(以一对一聊天室为例)


    一、以一对一(服务器,客户端)为例

      1、服务器:

         1、在目录文件 .pro文件中   QT       += core gui network  添加network

         2、在.h 文件中,定义

            QTcpServer* server;
            QTcpSocket* socket; 记得添加头文件

         3、 ui->setupUi(this);

            server = new QTcpServer;
            server->listen(QHostAddress::Any,1111);//等待连接
            connect(server,SIGNAL(newConnection()),this,SLOT(new_connect()));//记得添加槽信号

         

          4、//找到与服务器链接的客户端
            void MainWindow::new_connect()
            {

              socket = server->nextPendingConnection();
              connect(socket,SIGNAL(readyRead()),this,SLOT(ready_read()));
              ui->pushButton->setEnabled(true);
            }

          5、

            void MainWindow::ready_read()
            {
              socket->read(buf,sizeof(buf));

              ui->read_listWidget->addItem(buf);

            }

          6、        

            void MainWindow::on_pushButton_clicked()

            {

              socket->write(ui->lineEdit->text().toStdString().c_str(),ui->lineEdit->text().length());//发送内容给客户端
              ui->read_listWidget->addItem("server:"+ui->lineEdit->text());
              ui->lineEdit->setText(" ");\清空写的内容
            
    }

      2、客户端 (是通过IP地址和端口号来进行连接的)

        1、+network

        2、定义socket

        3、

          void MainWindow::on_conncet_buf_clicked()
          {
            socket->connectToHost(ui->lineEdit_2->text(),ui->lineEdit_3->text().toUInt());
            connect(socket,SIGNAL(readyRead()),this,SLOT(ready_read()));
          }

        4、

          void MainWindow::ready_read()
          {
            char buf[255] = {};
            socket->read(buf,sizeof(buf));
            ui->read_listWidget->addItem(buf);
          }

        5、void void MainWindow::on_send_btn_clicked()

          {

            socket->write(ui->lineEdit->text().toStdString().c_str(),buf+ui->lineEdit->text().toAscii().length());//文字输出,要在mian.c中添加对中文的处理;
             ui->read_listWidget->addItem(buf+ui->lineEdit->text());
            ui->lineEdit->setText(" ");

          }

  • 相关阅读:
    [Step By Step]SAP Visual intelligence连接到SAP HANA并访问视图 沧海
    SAP HANA中的用户拷贝(User Copy) 沧海
    在Cloudshare上使用PAL=〉系统检查及初始化 沧海
    SAP HANA学习资料中的基础表及数据SQL语句汇总 沧海
    [Step By Step]SAP HANA PAL多用户使用(单指数平滑法SINGLESMOOTH) 沧海
    [Step By Step]SAP HANA中创建层次分析视图(Hierarchy Analytic View) 沧海
    [Step By Step]SAP Visual Intelligence新增公式数据列(SAP HANA中提取数据) 沧海
    SAP HANA Education: Course & Certification Program 2013(SAP HANA认证考试) 沧海
    [Step By Step]SAP HANA中创建分析权限(Analytic Privilege) 沧海
    SAP HANA 存储过程中的IF While使用案例 沧海
  • 原文地址:https://www.cnblogs.com/gumpzlc/p/9563363.html
Copyright © 2020-2023  润新知