您的位置:首页 > 理论基础 > 计算机网络

QTcpSocket 发送和接收数据的几种方法

2015-06-28 11:48 966 查看
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

发送数据的示例代码:
1)write ( const QByteArray & ) : qint64
//用于暂存要发送的数据
    QByteArray block;
    //使用数据流写入数据
    QDataStream out(&block,QIODevice::ReadWrite);
    //设置数据流的版本,客户端和服务器端使用的版本要相同
    out.setVersion(QDataStream::Qt_DefaultCompiledVersion);

    //设置发送长度初始值为0
    out << (quint16) 0;
    //设置发送内容
    out<<"hello, mike";

    //回到字节流起始位置
    out.device()->seek(0);
    //重置字节流长度
    out << (quint16) (block.size()-sizeof(quint16));

    //往套接字缓存中写入数据,并发送
    tcpSocket->write(block);


2)write ( const char *, qint64 ) : qint64
QString str = "hello, mike";
	tcpSocket->write(a, a.length());


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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: