Всем доброго времени суток.
В учебнике нашел пример реализации приложения сетевого сервера и клиента на основе QTcpSocket и QTcpServer
Ниже даны несколько функций: 1-я отсылает данные с сервера клиенту, 2-я их принимает
Функция 1:
void MyServer::sendToClient(QTcpSocket* pSocket, const QString &str)
{
QByteArray arrBlock;
QDataStream out(&arrBlock, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_5);
out << quint16(0) << QTime::currentTime() << str;
out.device()->seek(0);
out << quint16(arrBlock.size() - sizeof(quint16));
pSocket->write(arrBlock);
}
2-я функция
void MyClient::slotReadyRead()
{
QDataStream in(m_pTcpSocket);
in.setVersion(QDataStream::Qt_4_7);
for(;;)
{
if (!m_nNextBlockSize)
{
if (m_pTcpSocket->bytesAvailable() < sizeof(quint16))
{
break;
}
in >> m_nNextBlockSize;
}
if (m_pTcpSocket->bytesAvailable() < m_nNextBlockSize)
{
break;
}
QString str;
QTime time;
in >> time >> str;
m_ptxtInfo->append(time.toString() + " " +str);//поле QTextEdit
m_nNextBlockSize = 0;
}
вопрос заключаеться в следующем. Имееться пользовательский класс
class OInfo
{
QVector<quint32> data;
QString name;
public:
OInfo(QVector<quint32> d, QString n)
{
data = d;
name = n;
}
//и еще несколько функций для чтения полей
};
каким образом можно передать данным методом объект класс OInfo?
при попытке простой передачи в поток объекта класса, компилятор ругаеться, что нет мол перегруженных версий >>(<<) для данного класса...
информацию по перегрузке операторов >> << конкретно для QDataStream я не нашел...
Заранее благодарю.