通过erlang端口在qt应用程序和erlang服务器之间进行通信

时间:2012-06-09 11:13:59

标签: c++ qt erlang erlang-ports

我需要在ubuntu中创建一个客户端(qt c ++)和一个服务器(erlang)。 服务器应该是通用的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 个答案:

答案 0 :(得分:0)

您应该使用一些IPC进行通信。您可以打开套接字(gen_tcp)或使用D-Bus。 Qt还有适当的类来处理套接字和d-bus。