Я пытаюсь установить связь через сокет TCP между приложением QT4 (MyApp) и Cayuga (написано на C ++).
Часть соединения работает нормально, т.е. Cayuga подключается к MyApp.
Теперь MyApp отправляет некоторые данные на Cayuga, но ничего не получается.
void MyApp :: init ()
QTcpServer *m_server;
QTcpSocket *clientConnection;
//Open socket for transmission
m_server = new QTcpServer(this);
if (!m_server->listen(QHostAddress::Any, m_port)) {
//Error handling
return;
}
connect(m_server, SIGNAL(newConnection()), this, SLOT(startSend()));
void MyApp :: startSend ()
{
clientConnection = m_server->nextPendingConnection();
}
Запись здесь делается:
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_0);
out << (quint16)0;
out << s;
out.device()->seek(0);
out << (quint16)(block.size() - sizeof(quint16));
clientConnection->write(block);
clientConnection->flush();
Мой преподаватель предложил использовать внешнюю библиотеку (cudb), если я не могу заставить ее работать с QTcpSockets. Это не правильно, и поэтому я надеюсь, что у вас есть лучший ответ на мою проблему.