Нулевая копия в клиентской программе Qt

Я пытаюсь реализовать подход нулевого копирования в моей клиентской программе, где я получу большой объем данных с сервера. Вот моя клиентская программа:
//Client.h

#ifndef CLIENT_H
#define CLIENT_H

#include <QtNetwork/QTcpSocket>
#include <QObject>
#include <QString>

class Client: public QObject
{
Q_OBJECT
public:
Client(QObject* parent = 0);
~Client();
void start(QString address, quint16 port);
public slots:
void startTransfer();
private:
QTcpSocket client;
};

#endif // CLIENT_H

//Client.cpp

#include "client.h"#include <QtNetwork/QHostAddress>

Client::Client(QObject* parent): QObject(parent)
{
connect(&client, SIGNAL(connected()),
this, SLOT(startTransfer()));
}

Client::~Client()
{
client.close();
}

void Client::start(QString address, quint16 port)
{
QHostAddress addr(address);
client.connectToHost(addr, port);
}

void Client::startTransfer()
{
virtual QByteArray client::readanydata();

}

readanydata () должен быть заменен любым другим API, так как read () и readall () используют копию памяти, они не подходят для подхода нулевого копирования. Клиент является экземпляром QTcpsocket. Что я должен использовать здесь. любое предложение, так как я не получить какой-либо API, или я должен написать свою собственную функцию. Если мне нужно написать свою собственную функцию, как он будет вызывать функцию transfile () api.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]