Avatar billede evilfish Nybegynder
17. april 2008 - 12:56 Der er 2 kommentarer og
1 løsning

hostent laver segmentation fault

Hej eksperter.

Jeg er ved at lave noget client server programmering i linux. Jeg sidder og arbejder ud fra dette eksempel jeg fandt på nettet:

http://www.linuxhowtos.org/data/6/client.c

Jeg har bygget serveren ud fra denne, og den kører fint. Nu sidder jeg så og arbejder på min client. Her er min kode:

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

int main()
{
    int socketConnection;
        int portno = 5697;
        char * address = "127.0.0.1";
        struct sockaddr_in serv_addr;
        struct hostent *server;
        char buffer[256];       
       
    socketConnection = socket(AF_INET, SOCK_STREAM, 0);
    printf("Socket returned: %d\n", socket);
               
        server = gethostbyname("localhost");
        bzero((char *) &serv_addr, sizeof(serv_addr));
        if(server = NULL)
        {
            puts("No such host");
            system("pause");
            return 0;
        }
        else
        {
            puts("Host Accepted");
        }
        bzero((char *) &serv_addr, sizeof(serv_addr));
        serv_addr.sin_family = AF_INET;
        bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); // <<----- FEJLER HER
        serv_addr.sin_port = htons(portno);
       
        return 0;
       
       
}

Jeg har skrevet hvor den fejler. Det jeg er nået frem til er selve hostent, som jeg ikke kan få tilgang til. Dvs hvis jeg forsøger følgende går det galt:

server->h_length;

Det gælder sådan set ved alle operationer.

Det compiler fint, men laver segmentation fault under kørsel. Kører jeg sampleClienten går det fint. Den kan endda forbinde til min server uden problemer. Nogle der har en mulig løsning og/eller forklaring på problemet?

På forhånd tusind tak.
Avatar billede evilfish Nybegynder
17. april 2008 - 12:59 #1
Glemte at sige at den smider en Exit value på 139. Hvis det kan hjælpe
Avatar billede evilfish Nybegynder
17. april 2008 - 13:39 #2
Jeg er dum.

Det hedder server == NULL IKKE server = NULL i if sætningen
Avatar billede mxs Nybegynder
18. april 2008 - 13:50 #3
:-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester