mboost-dp1

C++ kommunikation med php-webserver


Gå til bund
Gravatar #1 - Wolly
21. jul. 2009 17:47
Hvordan laver jeg nemmest kommunikation mellem et C++ program, og min webserver med PHP, som ligger på en anden computer.

Jeg har brug for at kunne sende nogle variabler, og der efter modtage et resultat. Jeg synes at kunne huske at jeg tidligere har lavet dette, bla. på nogle facebook applicationer, men kan simpelthen ikke huske hvad denne type forbindelse hedder. Jeg mener at jeg bare sendte et URL request til mit php script, og så lavede jeg scriptet så det afleverede det ønskede resultat, som eneste indhold på siden, som C++ programmet så læste.

Er der ikke en venlig sjæl der kan pointe mig i den rigtige retning, så jeg kan google det???
Gravatar #2 - Daniel-Dane
21. jul. 2009 17:49
WinInet er et let bibliotek. Jeg mener at have set et godt eksempel på msdn.
Gravatar #3 - Windcape
21. jul. 2009 17:52
Hvorfor vil du benytter C++ til det? Det er nok det mest besværlige sprog til formålet (med undtagelse af C).

Hvis du ikke er bekendt med C++, kunne du jo ligeså godt skrive dit program i PHP, Python, C#, eller hvilket som helst andet sprog med nemmere IO/WebRequest libraries.
Gravatar #4 - KaW
21. jul. 2009 17:52
Du kan lave GET requests som med http://someserver.org/?action=tell&title=hihi

Eller måske den lidt bedre udgave hvor du laver POST requests til din PHP server.
Gravatar #5 - arne_v
21. jul. 2009 17:53
Hvis det er Windows, så er WinInet nem at gå til.

Men ellers kan du jo bruge et helt standard socket API, som kan bruges på Win, *nix etc..

Jeg har eksempler på HTTP 1.1 GET og POST med socket API.
Gravatar #6 - Windcape
21. jul. 2009 17:58
<?php
$url = "http://clausjoergensen.dk/media/files/test.txt";

echo file_get_contents($url);
?>


Kør med:


c:\PHP\php.exe test.php


Hvorfor bruge C++ ;)
Gravatar #7 - Wolly
21. jul. 2009 18:00
Uhhh... det var mange svar hurtigt :-)

Jeg er tvunget til at bruge C++ og det er delvist på grund af min uduelighed i C++ jeg ønsker at få nogle funktioner over i PHP-serveren, da jeg er meget stærkere i at lave PHP scripts, samtidig har jeg brug for at visualisere en del variabler og lave en del database kald, som jeg alt sammen kan lave på 1/1000 del af tiden det ville tage mig at lave det i C++.

C++ programmet kører på Windows, og Webserveren køre på Linux, hvis det gør nogen forskel for jeres svar...

Kigger lige på winlnet og alle jeres andre forslag :-)
Gravatar #8 - Wolly
21. jul. 2009 18:04
@arne_v

Et eksempel på GET eller POST API er yderst velkommen :-)
Gravatar #9 - Windcape
21. jul. 2009 18:07
#8

http://www.luckyspin.org/?p=28

cURL er godt til POST requests.
Gravatar #11 - arne_v
21. jul. 2009 18:14
#9

Jeg ved ikke lige med den overbygning, men libcurl har et godt ry:

http://curl.haxx.se/libcurl/
http://curl.haxx.se/libcurl/cplusplus/
Gravatar #12 - Windcape
21. jul. 2009 18:18
Linket var mest for eksemplets skyld. Jeg har mest brugt libcurl fra PHP, og det er et rigtig godt API.
Gravatar #13 - Wolly
21. jul. 2009 18:20
1 million gange tak for alle jeres svar. Jeg er sikker på at jeg finder en løsning. Winlnet synes at være nemt at gå til, men da man jo er doven, tror jeg at jeg snupper et af arne_v's fantastiske eksempler, og retter det til så det passer til mit program :-)

endnu en gang mange tak for alle jeres hurtige svar...
Gravatar #14 - arne_v
22. jul. 2009 01:00
#13

Koden er såmænd ikke specielt fantastisk.

Jeg lavede et HTTP GET program engang i 1995 - og så har jeg copy pastet koden rundt siden.
Gravatar #15 - arne_v
22. jul. 2009 01:01
Iøvrigt: hvis koden skal buildes på *nix så skal man:
- ændre include filer
- ændre closesockettil close
- fjerne WSA* kaldene
Gravatar #16 - arne_v
22. jul. 2009 01:13
Wolly (7) skrev:
Jeg er tvunget til at bruge C++ og det er delvist på grund af min uduelighed i C++ jeg ønsker at få nogle funktioner over i PHP-serveren, da jeg er meget stærkere i at lave PHP scripts, samtidig har jeg brug for at visualisere en del variabler og lave en del database kald, som jeg alt sammen kan lave på 1/1000 del af tiden det ville tage mig at lave det i C++.


Hvis det skulle gøres rigtigt så skulle nok finde et SOAP toolkit til C++ (Axis2 findes til C) og så expose din PHP funktionalitet via et SOAP/HTTP API.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login