Связь между приложением qt и сервером erlang через порт erlang

Мне нужно сделать клиент (qt C++) и сервер (erlang) в Ubuntu. Сервер должен быть универсальным OTP-сервером. Клиент должен подключиться к серверу и отправить некоторые данные (строку), а erlang srv должен вернуть ту же строку.

Пожалуйста, предложите мне пример кода или скелет для реализации этой вещи.

Я решил начать с этого:

connect(Message) ->
    Cmd = "./myqtwindowapp \n",
    Port = open_port({spawn,Cmd}, [stream,use_stdio,exit_status]),
    Payload = string:concat(Message, "\n"),
    erlang:port_command(Port, Payload),
    receive
        {Port, {data, Data}} ->
            ?DBG("Received data: ~p~n", [Data]);
        Other ->
            io:format("Unexpected data: ~p~n", [Other]);
        after 15000 ->
            ?DBG("Received nothing~n", [])
    end.

Пожалуйста, помогите мне с клиентом и сервером.

1 ответ

Вы должны использовать IPC для связи. Вы можете открыть сокет ( gen_tcp) или использовать D-Bus, например. Qt также имеет соответствующие классы для обработки сокетов и шины D-Bus.

Другие вопросы по тегам