qt — межпроцессное взаимодействие между C # и C ++ (с использованием QT4.8)

Я сталкиваюсь с проблемой передачи данных между c # и C ++ (QT) приложением через связь по именованным каналам. Клиентское приложение C # подключается к серверу NamedPipe, который находится на c ++, но сообщение на сервере не обрабатывается правильно. Например, я отправляю значение байта массива синтаксического анализа короткой переменной = 2 и кода C ++ в unsigned int, но на сервере значение всегда равно нулю. Не могли бы вы дать мне знать, что я делаю не так?

Код клиента и сервера:

Код сервера NamedPipe в C ++ с использованием библиотеки QT

  QLocalSocket *local_socket = _local_server->nextPendingConnection();

if (!local_socket->waitForReadyRead(gft::PROC_TIMEOUT)) {
qDebug() << "gft_plugin: timeout while waiting for data";
return;
}

int bytesavailable = local_socket->bytesAvailable();

QByteArray buffer;
QDataStream in(&buffer, QIODevice::ReadOnly);
buffer.append(local_socket->readAll());

unsigned int msg;
in >> msg;

unsigned int a_id = msg;

Клиент NamedPipe (C #)

        var clientStream = new NamedPipeClientStream("localhost", "gft_plugin_server", PipeDirection.InOut);
clientStream.Connect();

if (clientStream.IsConnected)
{
_stop = false;
UInt16 a_id = 2;

byte[] b = BitConverter.GetBytes(a_id);

clientStream.Write(b, 0, b.Count());
clientStream.Flush();

}
else
{
MessageBox.Show("Could not connected");
}

2

Решение

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

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

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

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