Socket


QT Socket

TcpServer

QT += network 
  • 创建一个 TcpServer

      QTcpServer *server = new QTcpServer;
  • 监听

      server->listen(QHostAddress::Any, 9988);
  • connect 新连接

      connect(server,
              &QTcpServer::newConnection,
              this,
              &TcpServer::sl_serconnect
              );
  • slot 处理新来的连接 然后用一个 socket 接管新来的连接 之后 connect 处理读写

      void TcpServer::sl_serconnect()
      {
          //  有多个连接一次不取出来只调用一次nextPendingConnection
          while (_server->hasPendingConnections())
          {
              socket = server->nextPendingConnection();
    
              connect(socket,
                      &QTcpSocket::readyRead,
                      this,
                      &TcpServer::sl_readyread
                      );
          }
    
      }
    
      void TcpServer::sl_readyread()
      {
          QByteArray buf = _socket->readAll();
          _textbrowser->append(buf);
      }

TcpSocket

  • 创建一个 Tcpclient

      QTcpSocket *client = new QTcpSocket(this);
  • 连接server

      client->connectToHost("127.0.0.1", 9988);
  • 写数据

      client->write(strText.toUtf8());

文章作者: bySouffle
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 bySouffle !
  目录