Передача двоичных данных из C в C # через консоль - PullRequest
1 голос
/ 05 марта 2012

У меня есть два приложения, одно написанное на C, а другое на C #, которые общаются через сообщения консоли. Они оба ждут, пока другой не отправит строковое сообщение.

Теперь я хочу, чтобы в определенный момент приложение C отправляло изображение в двоичном формате через тот же «канал» консоли ввода-вывода, а приложение C # получало его и использовало как изображение для отображения. Я знаю, что это возможно, см .: C / C ++: возможно ли передавать двоичные данные через консоль? .

У меня есть доступ к исходному коду обоих приложений. Я знаю, где C-код приложения записывает образ на диск. Приложение C # получает выходные данные приложения C следующим фрагментом кода:

process.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived); //void
p_OutputDataReceived(object sender, DataReceivedEventArgs e) //e.Data.

Как мне кодировать часть C и C # этой передачи двоичного изображения? Благодаря.

1 Ответ

3 голосов
/ 05 марта 2012

Если ваш вопрос заключается в том, как передать эти данные, то действительно короткий ответ на ваш вопрос будет base64 . Он был создан специально для этой цели и имеет готовые библиотеки для C и C # (просто посмотрите, например, «C # base64»).

Это почти так же эффективно, как необработанное двоичное кодирование (с точки зрения передаваемых данных).

...