2012-06-09 6 views
0

우분투에서 클라이언트 (qt C++)와 서버 (erlang)를 만들어야합니다. 서버는 일반 OTP 서버 여야합니다. 클라이언트가 서버에 연결하여 일부 데이터 (문자열)를 보내야하며 erlang srv가 동일한 문자열을 반환해야합니다.erlang 포트를 통해 Qt 응용 프로그램과 erlang 서버간에 통신하기

이 코드를 구현하려면 예제 코드 나 스 켈리 톤을 제안하십시오.

나는이 시작하기로 결정

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. 

클라이언트와 서버와 저를 도와주세요.

+0

현재 코드가 작동하지 않는 이유는 무엇입니까? 당신은 무엇을하기를 원하며 그것은 대신 무엇을합니까? –

+0

정확히 포트 명령을 사용 하시겠습니까? TCP 포트가 아닌 이유는 무엇입니까 (gen_tcp 참조)? – Tilman

답변

0

일부 IPC를 사용하여 통신해야합니다. 예를 들어 소켓 (gen_tcp)을 열거 나 D-Bus을 사용할 수 있습니다. Qt는 또한 소켓과 d-bus를 다루기위한 적절한 클래스를 가지고 있습니다.