Please help me.......
I am getting blocked in bind() system call.......
i don't know why
can you please any one tell me why........
#include<stdio. h>
#include<sys/un.h>
#include<sys/types.h>
#include<sys/socket.h>
#define SOCK_PATH "mysock1"
void error(char *);
main()
{
printf("OK");
int sockfd,newsockf d,serverlen,cli len,n;
struct sockaddr_un cli_addr,serv_a ddr;
char buf[80];
printf("Ok");
if((sockfd=sock et(AF_UNIX,SOCK _STREAM,0))<0)
perror("creatin g socket");
serv_addr.sun_f amily=AF_UNIX;
printf("OK");
unlink(SOCK_PAT H);
strcpy(serv_add r.sun_path,SOCK _PATH);
if(bind(sockfd, (struct sockaddr
*)&serv_addr,si zeof(serv_addr) )<0)
perror("binding socket");
listen(sockfd,1 );
clilen=sizeof(c li_addr);
newsockfd=accep t(sockfd,(struc t sockaddr
*)&cli_addr,&cl ilen);
printf("Ok\n");
if(newsockfd<0)
error("acceptin g");
for(;;)
{
printf("Waiting for Client......\n" );
read(newsockfd, buf,sizeof(buf) );
printf("**CLIEN T** :%s",buf);
if(strcmp("end\ n",buf)==0)
{
printf("Disconn ecting\n");
exit(0);
}
printf("**SERVE R** :");
fgets(buf,sizeo f(buf),stdin);
write(newsockfd ,buf,sizeof(buf ));
}
}
void error(char *msg)
{
perror(msg);
exit(0);
}
I am getting blocked in bind() system call.......
i don't know why
can you please any one tell me why........
#include<stdio. h>
#include<sys/un.h>
#include<sys/types.h>
#include<sys/socket.h>
#define SOCK_PATH "mysock1"
void error(char *);
main()
{
printf("OK");
int sockfd,newsockf d,serverlen,cli len,n;
struct sockaddr_un cli_addr,serv_a ddr;
char buf[80];
printf("Ok");
if((sockfd=sock et(AF_UNIX,SOCK _STREAM,0))<0)
perror("creatin g socket");
serv_addr.sun_f amily=AF_UNIX;
printf("OK");
unlink(SOCK_PAT H);
strcpy(serv_add r.sun_path,SOCK _PATH);
if(bind(sockfd, (struct sockaddr
*)&serv_addr,si zeof(serv_addr) )<0)
perror("binding socket");
listen(sockfd,1 );
clilen=sizeof(c li_addr);
newsockfd=accep t(sockfd,(struc t sockaddr
*)&cli_addr,&cl ilen);
printf("Ok\n");
if(newsockfd<0)
error("acceptin g");
for(;;)
{
printf("Waiting for Client......\n" );
read(newsockfd, buf,sizeof(buf) );
printf("**CLIEN T** :%s",buf);
if(strcmp("end\ n",buf)==0)
{
printf("Disconn ecting\n");
exit(0);
}
printf("**SERVE R** :");
fgets(buf,sizeo f(buf),stdin);
write(newsockfd ,buf,sizeof(buf ));
}
}
void error(char *msg)
{
perror(msg);
exit(0);
}
Comment