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,30stdin);
        
fflush(stdin);

        
//Socket Inizialisieren:        
        
if(sock socket(AF_INETSOCK_STREAM0) < ) {
                
fprintf(stderr,"Fehler beim Inizialiesieren des Sockets");
                exit(
EXIT_FAILURE);
        }

        
//Ausfüllen des sockaddr_in struct:
        
memset( &server0sizeof(server) );
        if((
addr inet_addr(input)) != INADDR_NONE)     {
                
memcpy( (char *)&server.sin_addr, &addrsizeof(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*)&serversizeof(server)) < 0)       {
                
fprintf(stderr,"Verbindung kann nicht aufgebaut werden.");
                exit(
EXIT_FAILURE);
        }
         
        
echo_len strlen(echo_string);
        
        if (
send(sockecho_stringecho_len0) != 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