Hi everyone, I am writing on C simple socket programs in Linux. I wrote client and server C programs. My client program is
Code:
#include<sys/socket.h>//for socket(), connect(), sendto() and recvform()
#include<sys/types.h>
#include<netinet/in.h>
#include<netdb.h>
#include<stdio.h>// for printf() and fprintf()
#include<string.h>//for memset()
#include<stdlib.h>//for atoi() and exit()
#include<unistd.h>//for close()
#include<errno.h>
#include<arpa/inet.h>//for sockaddr_in and inet_addr()
#define SERVERPORT 11000
int main()
{
int sockfd = 0;
struct sockaddr_in serv_addr;
if((sockfd=socket(AF_INET, SOCK_STREAM,0))< 0)
{
printf("Cannot create socket\n");
return 1;
}
printf("Already create socket!!!\n");
memset(&serv_addr, 0 , sizeof(serv_addr));
serv_addr.sin_family = AF_INET; //AF_INET is IP address family, Internet = IP addr
printf("Finished AF_INET\n");
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); //sin_addr = ip addr
printf("Finished inet_addr\n");
serv_addr.sin_port = htons(11000); //sin_port = tcp/ip port no
printf("Finished port\n");
//bzero(&serv_addr.sin_zero,8);
if(connect(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr)) < 0)
{
perror("Cannot connect\n");
exit (1);
}
else
printf("Connected\n");
}
and my server program is
Code:
#include<sys/socket.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<netdb.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <unistd.h>
#include<errno.h>
#include<arpa/inet.h>
int main()
{
int listenfd = 0;
struct sockaddr_in serv_addr;
listenfd = socket(AF_INET, SOCK_STREAM, 0);
if (listenfd < 0)
{
printf("Cannot create socket\n");
close(listenfd);
return 1;
}
printf("Already create socket!!!\n");
serv_addr.sin_family = AF_INET;
printf("Finished AF_INET\n");
serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);
printf("Finished INADDR_ANY\n");
serv_addr.sin_port = htons(11000);
printf("Finished port\n");
if(bind (listenfd,(struct sockaddr *)&serv_addr, sizeof (serv_addr))<0)
{
printf("Cannot bind socket\n");
close(listenfd);
return 1;
}
}
I am just testing whether can connect or not. I run server program first and client later. But when I run client, it showed that
"Address family not supported by protocol". Why is it so? if anyone knows it, pls kindly guide me. thanks