Не знаю, лучше ли, но для подтверждения концепции, которую мне пришлось сделать, я использовал TCP-сокет на сервере Qt4, и к нему подключался бы клиент Mono / C #. Вот набросок моего кода:
MainWindow::mainWindow()
{
// more non relevant crap
tcpServer = new QTcpServer(this);
tcpServer->listen(QHostAddress::Any,3333);
connect(tcpServer,SIGNAL(newConnection()),this,SLOT(on_new_serverConnection()));
}
void MainWindow::on_new_serverConnection()
{
connection = tcpServer->nextPendingConnection();
connect(connection, SIGNAL(readyRead()), this, SLOT(on_data_read()));
}
void MainWindow::on_data_read()
{
QString s = connection->readAll();
qDebug("file to load - %s", qPrintable(s));
}
Обратите внимание, что on_data_read()
Я, вероятно, получу XML вместо просто имени файла, так как мне нужно также получить команды. Другими альтернативами являются разделяемая память, сокет unix (похожий на этот код) и, если вы хотите, чтобы пойти дальше: XMLRPC или SOAP, или даже dbus.
Просмотрите qt / examples / network /, qt / examples / dbus, qt / examples / ipc.