Hi Lano,

schade dass ich deine Mails erst jetzt gesehen habe. Schau mal in
unserem Wiki nach:
http://www.pug.org/mediawiki/index.php/Einf%C3%BChrung_in_die_Netzwerkprogrammierung

Zu deiner Aufgabe:
> Eigendlich geht es insgesamt nur darum
> 1. eine datei vom einem http-server laden
> 2. das was in der datei steht in eine variable stecken
> 2. die mac in eine variable bekommen
> 3. daraus eine url basteln
> 4. die url an den http-server senden

Den 2. Punkt 2 (;-)) hast du ja jetzt. Punkt 1 hänge ich dir hier dran
und für die Punkte 3 und 4 müssten wir wissen wie die URL aussehen soll.

Gruß
Laurence

zu 2.:
-----------------------------------------------------------
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <netdb.h>
extern int h_errno;
#include <arpa/inet.h>
#include <stdio.h>

#define MAX_STRING_SIZE 2048

int main (int argc, char ** argv) {
        int fd;
        struct sockaddr_in remote;
        char server_addr[16], server_port[6], server_ip[16];
        struct hostent * server_entry;
        int slen;
        char string[MAX_STRING_SIZE];
        char returnchar[1];

        if (argc<3) {
                printf("too few arguments\n");
                printf("Usage: %s <server> <port>\n\n", argv[0]);
                exit(1);
        }
        strcpy(server_addr, argv[1]);

        // get ip address to server name
        if ((server_entry=gethostbyname(server_addr)) == NULL) {
                printf("gethostbyname failed\n");
                exit(h_errno);
        }
        strcpy(server_port, argv[2]);
        strcpy(server_ip, inet_ntoa(*(struct
in_addr*)server_entry->h_addr_list[0]));
        printf("connecting to %s (%s) on port %s\n", server_addr, server_ip,
server_port);

        // open tcp socket
        if ((fd=socket(AF_INET, SOCK_STREAM, 0)) < 0) {
                perror("socket error");
                exit(errno);
        }

        // fill structure "remote" with remote address
        remote.sin_family=AF_INET;
        remote.sin_port=htons(atoi(server_port));
        remote.sin_addr.s_addr=inet_addr(server_ip);
        memset(&remote.sin_zero, 0, sizeof(remote.sin_zero));

        // connect to server "remote"
        if (connect(fd, (struct sockaddr*)&remote, sizeof(remote)) < 0)
        {
                perror("connect error");
                exit(errno);
        }
        printf("established!\n");

        // send chars to server
        strcpy(string, "GET /index.html\n");
        slen=strlen(string)+1;
        printf("Sending %d chars\n", slen);
        write(fd, string, slen);

        // receive answer from server
        printf("Server answered: \n");
        while((read(fd, returnchar, 1))>0) {
                printf("%s", returnchar);
        }
        close(fd);
}
-----------------------------------------------------------


On 08/31/2010 03:00 AM, lano wrote:
> Bernhard Guillon schrieb:
>>
>> Gruß
>> Bernhard
>>
> Boah, so, grad in dieser Minute geschafft.
> 
> Kanal: 2718f001d176
> Mac: 00:50:9c:15:c8:8b
> 
> 
> War das ne schwere geburt. unter anwendung von sprintf.
> 
> Jetzt werd ich erstma ausschalfen.
> 
> Vielen vielen dank für deine/eure bemühungen. Nathanael will ich ja
> nicht vergessen.
> 
> so denn -Sven-
> -- 
> ----------------------------------------------------------------------------
> 
> PUG - Penguin User Group Wiesbaden - http://www.pug.org
> 

Attachment: signature.asc
Description: OpenPGP digital signature

--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an