2012-02-17 3 views
4

내가 원하는 것은 웹 페이지에서 C++ 응용 프로그램에 메시지를 보내도록하는 것이지만 C++에서 웹 서버 및 웹 서버에 연결해야합니다 클라이언트에게.C++ 응용 프로그램과 통신 할 웹 페이지 얻기

내가 생각한 한 가지 방법은 메시지를 저장하는 MySQL 데이터베이스를 사용하는 것이고 C++ 앱은 libCURL을 사용하여 웹 서버에 새로운 메시지를위한 PHP 스크립트를 요청합니다. 그것은 매초마다 그것을 폴링해야 할 것이고 이것은 약간의 낭비 일 것입니다. 또한 웹 페이지에서 메시지를 보내려 할 때마다 양식을 웹 서버에 다시 제출해야하므로 느려질 수 있습니다.

나는 클라이언트와 C++ 응용 프로그램 사이에 TCP 연결을 만드는 것이 가능할 수도 있다고 생각하여 HTML5 웹 소켓을보고 있었지만 어떻게 작동하는지 생각하지 않습니다. 웹 소켓은 서버를 통해 두 HTML5 응용 프로그램간에 메시지를 라우팅하도록 설계 되었습니까? 아니면 이론적으로 HTML5 응용 프로그램을 사용하여 서버와 직접 대화 할 수 있습니까 (PHP 스크립트를 실행하거나 일반 TCP 패킷을 보낼 수 있습니까)?

내가 어떻게 이것을 달성 할 수 있었는지에 대한 제안은 환영받을 것입니다.

감사합니다.

답변

3

웹 사이트에서 원격 프로 시저 호출을하려면 SOAP을 살펴 보는 것이 좋습니다. SOAP은 완벽하게 with PHP으로 작동하고 gSOAP을 사용하면 C++ 응용 프로그램에 서버 인터페이스를 쉽게 포함시킬 수 있으며 필요한 경우 서버 인터페이스를 포함 할 수도 있습니다.

응용 프로그램 전체를 가져 오는 매우 간단한 메시지 만있는 경우 데이터베이스 아이디어도 효과가 있지만 응용 프로그램에서는 새 메시지를 사용할 수 있는지 여부를 계속 확인해야합니다 (불필요한 많은 트래픽, 최소한 데이터베이스가 애플리케이션과 동일한 시스템에없는 경우), 직접 점검해야하며 모델 등을 고려해야합니다.

SOAP 반면에 SOAP은 서버로 직접 데이터를 전송합니다 응용 프로그램을 처리하고 암시 적으로 형식 안전성 또는 직렬화 같은 모든 불쾌한 요소를 처리합니다.

World Wide Web Consortium에서 SOAP이 정의 된 방식과 작동 방식을 깔끔하게 설명하는 많은 설명서와 예제를 찾을 수 있습니다. gSOAP의 User Guide에서 C++로 SOAP 서버를 설정하는 방법에 대한 다양한 예가 있습니다.

1

매우 쉽지는 않습니다.

Android 기기에 메시지를 전송하는 데 사용되는 Cloud to Device Messaging 프레임 워크라고합니다.

당신이하고있는 것을 푸시라고합니다. Here is a video on this from Google IO.

C++ 응용 프로그램을 Android 기기로 생각하십시오.

귀하의 C++ 응용 프로그램은 연결을 기다리는 서비스에 대한 일부 tcp/ip 포트를 통해 서버에 연결합니다. 앱은 서버에 앱을 실행하는 사용자의 ID를 알려주거나 앱이 멀티 캐스트 된 경우 서비스에서 메시지를 기다립니다.

웹 서버는 프로세스 간 통신, namedpipes, mutexes 등을 사용하여 서비스를 단일화하여 열려있는 모든 TCP/IP 연결을 통해 메시지를 보낼 수 있습니다.

+0

기타 테스트 ... –

2

C++ 프로그램을 작성하는 경우 CGI를 사용하여 웹 서버가 C++ 프로그램을 '스크립트'로 실행하여 관련 http 요청을 처리하고 http를 직접 출력하도록 작성할 수 있습니다 귀하의 C + + 프로그램에서 응답.

http://en.wikipedia.org/wiki/Common_Gateway_Interface

관련 문제