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
>
signature.asc
Description: OpenPGP digital signature
-- ---------------------------------------------------------------------------- PUG - Penguin User Group Wiesbaden - http://www.pug.org

