M
Metall
Grünschnabel
Hallo,
Ich habe ein Code in C geschrieben, der sich mitenem Server verbinden soll.
Den Code habe ich vorher schon mal mit php ausprobiert und da hat er noch funktioniert.
Nur in C verbindet sich der code nicht mit dem Server. Der Fehler liegt in der Funktion connect();
Hier ist der Code:
Ich hoffe Ihr könnt mir helfen...
mfg
Ich habe ein Code in C geschrieben, der sich mitenem Server verbinden soll.
Den Code habe ich vorher schon mal mit php ausprobiert und da hat er noch funktioniert.
Nur in C verbindet sich der code nicht mit dem Server. Der Fehler liegt in der Funktion connect();
Hier ist der Code:
Code:
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
#define BUF_SIZ 4096
int main( int argc, char **argv) {
char buff[BUF_SIZ];
char msg[BUF_SIZ];
int s;
struct sockaddr_in server;
struct hostent *host_info;
unsigned long addr;
char str[];
/* Ip Adresse holen*/
host_info = gethostbyname("loquor.de");
memcpy( (char *)&server.sin_addr,
host_info->h_addr, host_info->h_length );
server.sin_family = AF_INET;
/*Http Port 80.*/
server.sin_port = 80;
printf("Createing Socket:...");
/*Socket erstellen.*/
s = socket(AF_INET, SOCK_STREAM, 0);
if (s <= 0) {
printf("Error.\n");
return EXIT_SUCCESS;
} else {
printf("Ok.\n");
}
printf("%s", sizeof(server));
printf("%s", (struct sockaddr*)&server);
printf("Connecting with server:...");
char result;
/*Mit dem Server verbinden.*/
result = connect(s,(struct sockaddr*)&server,sizeof(server));
if (result <= 0) {
printf("Error.\n");
return EXIT_SUCCESS;
} else {
printf("Ok.\n");
}
/*HTTP 1.1 Anfrage:*/
char send[] = "GET /mvs/test.txt HTTP/1.1\\n"
"Host: www.loquor.de\r\n\r\n";
strcat(send, "\n");
/*HTTP 1.1 Anfrage senden*/
printf("Sending Socket:...");
if (send(s, send, strlen(send))) {
printf("Ok.\n");
} else {
printf("Error.\n");
return EXIT_SUCCESS;
}
/*Datei vom Server empfangen.*/
printf("Getting file:...");
int count = recv(s, buff2, 1024, 0);
if (count <= 0) {
printf("Error.\n");
return EXIT_SUCCESS;
} else {
printf("Ok.\n");
}
/*'\0' an die empfangene Variable anhängen*/
buff[count] = '\0';
/*Ergebnis ausgeben*/
printf("Ergebnis des Servers: %s\n", buff);
close(s);
return EXIT_SUCCESS;
}
Ich hoffe Ihr könnt mir helfen...
mfg