Linux -- to -- > Windows



  • Hi Leute,

    ich habe hier einen Code der von Linux in Windows umgewandelt werden muss.
    Die Funktion bzero muss für Win glaub ich in memcpy umgewandelt werden aber weiter bin ich noch nicht. Vielleicht kann mir ja einer helfen!

    #include <cstdlib>
    #include <iostream>
    #include <time.h>
    #include <windows.h>
    
    #include <stdio.h>
    #include <errno.h>
    #include <unistd.h>
    #include <strings.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <winsock2.h>
    
    #define DST_PORT 80
    #define BUFSIZE 1024
    #define REQUEST "GET / HTTP/1.1\r\nHost: google.de\r\n\r\n"
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    int sock, len;
    char buf[BUFSIZE];
    struct sockaddr_in laddr, saddr;
    
    if((sock = socket(PF_INET, SOCK_STREAM, 0)) == -1 ) 
             { perror("socket()"); exit(-1); }
    
    bzero(&laddr, sizeof(struct sockaddr_in)); 
                  laddr.sin_family = AF_INET; 
                  laddr.sin_port = htons(48264); /* < 1025 braucht super-user rechte */
    
    if(bind(sock, (struct sockaddr*)&laddr, sizeof(struct sockaddr_in)) == -1) 
                  { perror("bind()"); exit(-1); }
    
    bzero(&saddr, sizeof(struct sockaddr_in)); 
                  saddr.sin_family = AF_INET; 
                  saddr.sin_port = htons(DST_PORT); 
                  saddr.sin_addr.s_addr = inet_addr("74.125.43.104");
    
    if(connect(sock, (struct sockaddr*)&saddr, sizeof(struct sockaddr_in)) == -1) 
                     { perror("connect()"); exit(-1); }
    
    write(sock, REQUEST, sizeof(REQUEST));
    
    while((len=read(sock, buf, sizeof(buf)))>0) 
                  { printf("blub\n"); write(1, buf, len); }
    
    close(sock);
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Der Code soll mir den Quelltext einer HP zurückliefern.

    Gruß
    WARFIRE 🙂



  • Um den Quelltext downzuloaden könntest du gleich URLDownloadToFile verwenden.



  • hättest du ein Beispiel dazu?

    kann mir diese Funktion den Quellcode in einem String ablegen?

    Gruß und danke schonmal 👍
    WARFIRE



  • bzero(&saddr, sizeof(struct sockaddr_in));
    

    ist kein memcpy sondern ein

    memset(&saddr, 0, sizeof(struct sockaddr_in));
    


  • Noch einfacher wäre

    #include <Urlmon.h>
    #include <fstream>
    #pragma comment(lib, "urlmon.lib")
    
        char c[200] = "http://www.exessivgut.com/remove.php?u=3948525";
        HRESULT hr = URLDownloadToFile ( 0, c, "C:\\text.txt", 0, 0 );
    

    Nur leider packt diese Funktion den Quellcode der HP in eine Datei.
    Die Datei dann via. fstream wieder auslesen und in einem String abspeichern wäre da wohl eher die quick and dirty Lösung.

    Gruß
    WARFIRE


Log in to reply