Отправка/получение данных из php COM-port и обратно через c#

118
01 октября 2019, 03:30

Возникла такая задача. Нужно обратиться из php в приложение работающее через com порт (с вызовом dll библиотеки) и получить обратно от него ответ. Я решил написать в качестве посредника, скажем роутера небольшое приложение на c#. Которое должно работать следующим образом.

Из php через curl(json or xml) я обращаюсь к приложению на c#, приложение на с# принимает данные, парсит и отправляет эти же данные в приложение работающее через com порт, получает ответ из этого приложение данные, и обратно отправляет ответ из приложения в php скрипт.

Самая большая проблема в том, что я очень слабо знаком с возможностями c#.

Нужна помощь в получении данных из php скрипта и отправки обратно в php скрипт например принятые данные из php.

Я нашел небольшой сниппет на c# принцип которого меня устраивает, но я как получить отдать ответ я не знаю. Прошу оказать мне помощь.

P.S как обратиться к com порту я уже наковырял )

static void Main(string[] args)
    {
        HttpListener listener = new HttpListener();
        // установка адресов прослушки
        listener.Prefixes.Add("http://localhost:8888/connection/");
        listener.Start();
        Console.WriteLine("Wait..");
        // метод GetContext блокирует текущий поток, ожидая получение запроса 
        HttpListenerContext context = listener.GetContext();
        HttpListenerRequest request = context.Request;
        // получаем объект ответа
        HttpListenerResponse response = context.Response;
        // создаем ответ в виде кода html
        string responseStr = "test";
        byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseStr);
        // получаем поток ответа и пишем в него ответ
        response.ContentLength64 = buffer.Length;
        Stream output = response.OutputStream;
        output.Write(buffer, 0, buffer.Length);
        // закрываем поток
        output.Close();
        // останавливаем прослушивание подключений
        listener.Stop();
        Console.WriteLine("End");
        Console.Read();
    }

Нужен временный айпи и порт на который я буду обращаться из php, что мне предоставляет сниппет http://localhost:8888/connection/.

Answer 1
$fp = fopen('PORT', 'r+');

где PORT - адрес порта в системе.
Дальше просто читать писать в этот файл стандартными средствами.
Никаких C#, серверов, dll, XML, JSON и прочей чепухи.

READ ALSO
mysql_insert_id возвращает 0 после UPDATE

mysql_insert_id возвращает 0 после UPDATE

Подскажите пожалуйста, есть код, который обновляет запись таблицы:

117
передача из формы в БД php/mysql

передача из формы в БД php/mysql

Возникла некая проблема при создание формыТо есть, при заполнении таблицы нужно создать в БД таблицу с названием, которое содержит переменная...

132
DOMDocument как добавить ноду в начало списка потомков?

DOMDocument как добавить ноду в начало списка потомков?

Мне нужно после открывающего тега добавить ноду, проблема в том что внутри head уже есть потомкиКаким способом это можно сделать?

139