Problem: InternetOpen/InternetConnect/HttpOpenRequest/HttpSendRequest



  • Hallo, tolles Forum!

    Versuche eine kurze Nachricht an einen anderen rechner zu schicken, das Programm kompiliere ich auf host1(Win7) und führe es auf host2(Winxp sp_3) aus, um die Nachricht an host1 zu schicken - funktioniert aber nicht... Es gibt keine Fehlermedlung in Kompilierzeit...

    Hier der Code:

    #pragma comment(lib, "wininet.lib")
    #include <stdio.h>
    #include <windows.h>
    #include <Tlhelp32.h>
    #include <wininet.h>
    
    #define _WIN32_WINNT _WIN32_WINNT_WINXP  //damit unter xp läuft
    
    int main() {
    
    HINTERNET OpenHandle = InternetOpen("192.168.178.116",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
    HINTERNET Handle  = InternetConnect(OpenHandle,"192.168.178.116",8080,"","",INTERNET_SERVICE_HTTP,0,0);
    HINTERNET ConnectHandle = HttpOpenRequest(Handle,"POST", "/hit.php",NULL,NULL,NULL,INTERNET_FLAG_KEEP_CONNECTION,0);
    HttpSendRequest(ConnectHandle,"Content-Type:application/x-www-form-urlencoded",-1L,"Hello World",12);
    
    }
    

    Hier die Kommandozeile:

    /OUT:"c:\users\duke\documents\visual studio 2010\Projects\blatest\Release\blatest.exe" /NOLOGO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Release\blatest.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"c:\users\duke\documents\visual studio 2010\Projects\blatest\Release\blatest.pdb" /OPT:REF /OPT:ICF /PGD:"c:\users\duke\documents\visual studio 2010\Projects\blatest\Release\blatest.pgd" /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE
    

    Kann vielleicht wer nach winapi verschieben, is noch bisschen früh...



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • damessi schrieb:

    funktioniert aber nicht...

    Was genau funktioniert nicht? Es kommt einfach keine Nachricht? InternetOpen etc. sehen irgendwie so aus, als wären sie zur HTTP-Kommunikation gedacht.
    Wenn du nur eine Verbindung zwischen zwei PCs herstellen möchtest, warum nutzt du dann nicht einfach Sockets?

    (Das #define ist im übrigen unnötig und müsste wenn dann vor #include<windows.h>)



  • Doch ich bekomme nach httpopenrequest error insufficient buffer(bekomme aber nicht null zurück - scheint also zu funktionieren, die 13 für länge müssen ja reichen...), nach dem httpsendrequest ein error internet cannot connect, auch vielsagend...
    Mir wurde vorgegeben damit zu arbeiten, danke für den define Tip stimmt ist nicht nötig.

    mfg



  • damessi schrieb:

    Mir wurde vorgegeben damit zu arbeiten

    oO Warum das denn?
    Wie sieht die Empfängerseite aus?



  • Ev. hilft Dir eine Library um deinen Auftrag auszuführen:
    http://curl.haxx.se/libcurl/



  • Hab nen Paketfilter auf Sender laufen nix...
    aber na ja danke für eure Hile


Anmelden zum Antworten