meine erste Client Anwendung und ich habe ein Problem
Hi
ich habe ein Programm geschrieben dessen Quelltext so aussieht:
PHP-Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
int main(void) {
struct sockaddr_in server; //Struktur vom Typ sockaddr_in deklariert.
struct hostent *host_info;
char input;
char *echo_string = malloc(50);
char echo_len;
unsigned long addr;
int sock;
//Eingabe:
printf("Bitte geben sie die Adresse an:\n");
scanf("%s",&input);
fflush(stdin);
printf("Bitte geben sie einen Echostring an:\n");
fgets(echo_string,30, stdin);
fflush(stdin);
//Socket Inizialisieren:
if(sock = socket(AF_INET, SOCK_STREAM, 0) < 0 ) {
fprintf(stderr,"Fehler beim Inizialiesieren des Sockets");
exit(EXIT_FAILURE);
}
//Ausfüllen des sockaddr_in struct:
memset( &server, 0, sizeof(server) );
if((addr = inet_addr(input)) != INADDR_NONE) {
memcpy( (char *)&server.sin_addr, &addr, sizeof(addr));
}
//Domainname in IP umwandeln:
else {
host_info = gethostbyname(input);
if(NULL == host_info) {
fprintf(stderr,"Unbekannter Server");
}
memcpy( (char *)&server.sin_addr, (*host_info).h_addr, (*host_info).h_length );
}
server.sin_family = AF_INET;
server.sin_port = htons(80);
//Verbinden:
if ( connect(sock,(struct sockaddr*)&server, sizeof(server)) < 0) {
fprintf(stderr,"Verbindung kann nicht aufgebaut werden.");
exit(EXIT_FAILURE);
}
echo_len = strlen(echo_string);
if (send(sock, echo_string, echo_len, 0) != echo_len) {
fprintf(stderr,"Fehler beim Senden des Echostrings");
exit(EXIT_FAILURE);
}
close (sock);
return EXIT_SUCCESS;
}
im Terminal sah das dann so aus:
Code:
gh0st@a450-netbook:~/Desktop$
gh0st@a450-netbook:~/Desktop$ gcc client.c
client.c: In Funktion »main«:
client.c:37: Warnung: Übergabe des Arguments 1 von »inet_addr« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
client.c:42: Warnung: Übergabe des Arguments 1 von »gethostbyname« erzeugt Zeiger von Ganzzahl ohne Typkonvertierung
gh0st@a450-netbook:~/Desktop$ ./a.out
Bitte geben sie die Adresse an:
Web.de
Bitte geben sie einen Echostring an:
Segmentation fault
gh0st@a450-netbook:~/Desktop$
Leider kann ch mit der Warnung nicht viel anfangen kann mir bitte eier von euch sagen warum das nicht Funktioniert vielleicht sogar mit einem Auskemmentiertem Quelltext?
währe sehr dankbar.
mfg cyber_gh0st