<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## 實例 構造函數中 創建連接 ``` tcpServer = new QTcpServer(this); if(!tcpServer->listen(QHostAddress::LocalHost,6666)) { qDebug() << tcpServer->errorString(); close(); } //連接信號和相應槽函數 connect(tcpServer,SIGNAL(newConnection()),this,SLOT(sendMessage())); ``` 發送信息 1. 不管是發送文件還是字符串,都是可以用這種方式,發送時候聲明包的大小 2. `out<<(quint16) 0;`在`block`的開始添加了一個兩字節大小的空間然后`out<<tr("hello Tcp!!!");`輸入實際的文件,這里是字符串。當文件輸入完成后我們再使用`out.device()->seek(0);`返回到`block`的開始,加入實際的文件大小信息 `out<<(quint16) (block.size() - sizeof(quint16));` ``` void Widget::sendMessage() { //用于暫存我們要發送的數據 QByteArray block; //使用數據流寫入數據 QDataStream out(&block,QIODevice::WriteOnly); out<<(quint16) 0; out<<tr("hello Tcp!!!"); out.device()->seek(0); out<<(quint16) (block.size() - sizeof(quint16)); //我們獲取已經建立的連接的子套接字 QTcpSocket *clientConnection = tcpServer->nextPendingConnection(); connect(clientConnection,SIGNAL(disconnected()),clientConnection, SLOT(deleteLater())); clientConnection->write(block); clientConnection->disconnectFromHost(); } ``` 讀取消息 ``` void Widget::readMessage() { QDataStream in(tcpSocket); if(blockSize==0) //如果是剛開始接收數據 { //判斷接收的數據是否有兩字節,也就是文件的大小信息 //如果有則保存到blockSize變量中,沒有則返回,繼續接收數據 if(tcpSocket->bytesAvailable() < (int)sizeof(quint16)) return; in >> blockSize; } if(tcpSocket->bytesAvailable() < blockSize) return; //如果沒有得到全部的數據,則返回,繼續接收數據 in >> message; //將接收到的數據存放到變量中 ui->messageLabel->setText(message); //顯示接收到的數據 } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看