QTcpSocket 發送數據的幾種方法
1、QTcpSocket 繼承於QAbstractSocket繼承於QIODevice
2、QTcpSocket 提供的幾種接收和發送數據方法
- write ( const char *, qint64 ) : qint64
- write ( const char * ) : qint64
- write ( const QByteArray & ) : qint64
- writeData ( const char *, qint64 ) : qint64
- read ( char * data, qint64 maxSize ): qint64
- read ( qint64 maxSize ):QByteArray
- readAll ():QByteArray
- readLine ( char * data, qint64 maxSize ):qint64
- readLine ( qint64 maxSize = 0 ):QByteArray
3、例子1 write ( const QByteArray & ) : qint64
- //用於暫存要發送的數據
- QByteArray block;
- //使用數據流寫入數據
- QDataStream out(&block,QIODevice::ReadWrite);
- //設置數據流的版本,客戶端和服務器端使用的版本要相同
- out.setVersion(QDataStream::Qt_4_6);
- //設置發送長度初始值為0
- out << (quint16) 0;
- //設置發送內容
- out<<hash;
- //回到字節流起始位置
- out.device()->seek(0);
- //重置字節流長度
- out << (quint16) (block.size()-sizeof(quint16));
- //往套接字緩存中寫入數據,並發送
- tcpSocket->write(block);
3、例子2 write ( const char *, qint64 ) : qint64
- QString *a=new QString;
- tcpSocket->write(a,a->length());
4、例子3 數據流直接使用QIODevice
- QDataStream in(tcpSocket);
- in<< quint16(0xFFFF); //此時QIODevice加載了此數據,而且直接發送出去
- quint16 length = 0;
- QDataStream out(tcpSocket);//如果此時tcpSocket直接有數據發送過來
- out >> length;//length獲得第一個整型值,並在tcpSocket中清空該數據
http://qimo601.iteye.com/blog/1283372

