首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用QTcpSocket读取完整数据(Qt4.7)

如何使用QTcpSocket读取完整数据(Qt4.7)
EN

Stack Overflow用户
提问于 2020-01-29 01:22:48
回答 1查看 62关注 0票数 1

我创建了一个TcpServer,以便从客户端接收数据。客户端发送了很多消息,我想要阅读它们。到目前为止,我的TcpServer.cpp是这样的:

代码语言:javascript
复制
void TcpServer::serverStart()
{
    server = new QTcpServer(this);
    if (!server->listen(QHostAddress("192.168.x.x"), 48583))
    {
        qDebug() << "Not listening";
        server->close();
        delete server;
        return;
    }
    else {
        qDebug() << "Listening";
    }

connect(server, SIGNAL(newConnection()), this, SLOT(newConnection()));


}



void TcpServer::newConnection()
{

    socket = server->nextPendingConnection();
    qDebug() << "Client connected";

    connect(socket, SIGNAL(readyRead()), this, SLOT(getData()));
    connect(socket, SIGNAL(disconnected()), socket, SLOT(deleteLater()));
}


void TcpServer::getData()
{

QByteArray buffer;

while (socket->bytesAvailable())
    {
        buffer.append(socket->readAll());
       }
qDebug() << buffer;
    }




void TcpServer::serverStop()
{
    server->close();
    delete server;
}

我知道我的getData函数需要更多的东西才能接收所有的东西,但是我不理解执行that.If所需的步骤,如果有人能给我一些指点,我将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2020-01-29 02:00:09

TCP是一种面向流的传输协议。把它想象成一个连续的数据流。TCP还没有定义消息,因为它同样是一个连续的数据流。

我从您的评论中了解到,您没有使用任何应用层协议。你需要一个应用层协议,比如http,然后它会定义“消息”,并给你更多关于如何阅读完整消息的指令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59954023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档