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.