Warum funktioniert das Script manchmal und manchmal nicht?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von myth2806, 1. November 2006 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 1. November 2006
    Hi leutz,

    also ganz einfach.... ich hab ja hier ein einfaches Script (In C geschrieben) was von einem HTTP-Server einfach eine Datei abrufen kann. So normalerweise kein problem. Mit google gehts mit meinem eigenen server überalll nur nicht bei Layer-ads ...... aber warum das??

    hier der src, ganz einfach;

    Code:
    #include <stdio.h>
    #include <errno.h>
    #include <string.h>
    #include <stdlib.h>
    #include <winsock.h>
    #include <io.h>
    
    #define HTTP_PORT 80
    
    int main(int argc, char **argv)
    {
     int sock;
     struct sockaddr_in host_addr;
     struct hostent *hostinfo;
     char *host, *file;
     char command[1024];
     char buf[32768];
     int bytes_sent, bytes_recv;
    
     /* Ist der Aufruf korrekt? */
     if (argc != 3) {
     fprintf (stderr, "Aufruf: httprecv host file\n");
     exit (EXIT_FAILURE);
     }
    
     host = argv[1];
     file = argv[2];
    
     /* ggf. Winsock initialisieren */
     #ifdef _WIN32
     WSADATA wsaData;
     if (WSAStartup (MAKEWORD(1, 1), &wsaData) != 0) {
     fprintf (stderr, "WSAStartup(): Kann Winsock nicht initialisieren.\n");
     exit (EXIT_FAILURE);
     }
     #endif
    
     /* Socket erzeugen */
     sock = socket (AF_INET, SOCK_STREAM, 0);
     if (sock == -1) {
     perror ("socket()");
     exit (EXIT_FAILURE);
     }
    
     /* Adresse des Servers festlegen */
     memset( &host_addr, 0, sizeof (host_addr));
     host_addr.sin_family = AF_INET;
     host_addr.sin_port = htons (HTTP_PORT);
    
     host_addr.sin_addr.s_addr = inet_addr (host);
     if (host_addr.sin_addr.s_addr == INADDR_NONE) {
     /* Server wurde nicht mit IP sondern mit dem Namen angegeben */
     hostinfo = gethostbyname (host);
     if (hostinfo == NULL) {
     perror ("gethostbyname()");
     exit (EXIT_FAILURE);
     }
     memcpy((char*) &host_addr.sin_addr.s_addr, hostinfo->h_addr, hostinfo->h_length);
     }
    
     /* Verbindung aufbauen */
     if (connect(sock, (struct sockaddr *) &host_addr, sizeof(struct sockaddr)) == -1) {
     perror ("connect()");
     exit (EXIT_FAILURE);
     }
    
     /* HTTP-GET-Befehl erzeugen */
     sprintf (command, "GET %s HTTP/1.0\nHost: %s\n\n", file, host);
    
     /* Befehl senden */
     bytes_sent = send (sock, command, strlen (command), 0);
     if (bytes_sent == -1) {
     perror ("send()");
     exit (EXIT_FAILURE);
     }
    
     // Antwort des Servers empfangen und ausgeben */
     while ((bytes_recv = recv (sock, buf, sizeof(buf), 0)) > 0) {
     write (1, buf, bytes_recv);
     }
     if (bytes_recv == -1) {
     perror ("recv()");
     exit (EXIT_FAILURE);
     }
    
     printf ("\n");
    
     closesocket(sock);
     WSACleanup();
     
     return 0;
    }
    
    greez myth
     
  2. 1. November 2006
    AW: Warum funktioniert das Script manchmal und manchmal nicht?

    Du schreibst in C keine Scripte, sondern Applicationen
    Script nur bei Interpretierten Sprachen.

    Warum geht es denn nicht ? Was kommt denn zurueck ?
    Layer-ADs ? Wenn Layer-ADs auf der Page ist, oder auf der Layer-ADs HomePage ?

    Mfg,

    Kolazomai
     
  3. 4. November 2006
    AW: Warum funktioniert das Script manchmal und manchmal nicht?

    ok dann sage ich hier auch mal öffentlich vielen dank an kolazomai.
    wer etwas ähnliches mal vorhaben solllte, für den ist gut zu wissen dass das problem darin bestand dass der server mit dem https-protokoll gearbeitet hat. dh nicht auf port 80 sondern 443.

    greez myth

    //:closed
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.