1、qt的tcp通信 伺服器和客戶端讀寫數據的問題
首先回答第一個問題,讀和寫可以有多種實現方式,用write和read只是其中一種,前面一個函數中的 clientConnection->write(block)是調用了QTcpSocket 類中的write方法來實現,如果你想不用此方法調用類中的read和write方法,就是你問的第二個問題,in和out的作用,in和out在這里將對socket中的報文收發變為數據流的形式來操作,QDataStream in(tcpSocket)比如這一句是將tcpSocket這個連接的實例對象作為一個文件描述符傳遞給QDataStream,然後 in >> blockSize這句話實現的就是相當於read的操作,就是將數據流讀出來。這個 out << (quint16)(block.size() - sizeof(quint16))是寫入。實際上對諸如串口收發,讀寫文件,socket通信等等,用C語言來寫,抽象出來都是對文件描述符進行操作,都可以用write和read來做,所以,實際上,第一種方法和第二種方法是一樣的,就看你選擇什麼樣的方法了,第三個問題可參考out << (quint16)(block.size() - sizeof(quint16))這樣的方法在收到數據以後把數據發出去。
請給分。。。
2、Qt Socket網路編程 伺服器端提示QIODevice::read (QTcpSocket): device not open,但是與客戶端連接成功
這是因為文件路徑抄不對造成的,解決方法如下:
1、首先pro文件配置:Qt網路功能需要在pro文件增加網路庫。
2、QTcpServer服務端建立的方法代碼,如下圖所示。
3、QTcpServer當有新客戶端連接時,會發出QTcpServer::newConnection的信號方法代碼。
4、客戶端為主動連接方不需要監聽,直接建立QTcpSocket代碼。
5、最後通過connectToHost連接指定ip和埠,將socket的連接成功的信號與對應槽連接,當連接成功可以將自定義的標記位置為true。
3、QT寫的客戶端。C寫的服務端。怎麼進行通信
你既然復是用qt寫的,那麼就應該制能使用C++。
out.setVersion()很顯然是在調用out對象的setVersion方法。
這個out對象是QDataStream類。
一般發送的時候,先連接好通信。然後准備一個QByteArray對象(位元組數組),再使用一個QDataStream對象把待發送的數據放到QByteArray對象中,最後調用QTcpSocket對象的write方法,把QByteArray對象發送出去。
4、用C++寫一個最簡單的web伺服器,qt做界面。要求在界面顯示伺服器連接日誌。 直接把伺服器代碼
如果你是想鏈表和Qt做在同一個進程裡面的話.
把鏈表直接做成 靜態或動態庫 給 Qt調用就可以了.
如果在兩個進程裡面的話就要搞進程間通信也許就要另外開線程了.
Qt做界面可以不用VC的.下個Qt creator 也不錯.
5、用Qt怎樣實現真正的客戶端與伺服器之間的通信
在.pro文件里加入network模塊,然後用相應的類來實現客戶端和伺服器端的編程,
6、Qt socket編程,客戶端和伺服器端要放在兩個工程中嗎
可以放在一個工程中,運行兩個 一個點服務端(點了服務端端設置不能點客戶端),一個點客戶端(點了客戶端就不能點服務端)