bind : Address already in use
hi all,
I'm trying to learn socket programming.
whenever i run my server it runs properly for the first time, but the second time it says bind: Address already in use. i cant run my server unless i restart my comp. my client program is working fine
please help!
here is the code
bzero((char*) &serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);
serv_addr.sin_port=htons(SERV_TCP_PORT);
if(bind(sockfd,(struct sockaddr *)&serv_addr, sizeof(serv_addr))<0)
{
perror("bind");
exit(1);
}
listen(sockfd,5);
printf("success\n");
for( ; ; )
{
clilen=sizeof(cli_addr);
newsockfd=accept(sockfd,(struct sockaddr *)&cli_addr, &clilen);
if(newsockfd<0)
printf("server accept error");
if((chpid=fork())<0)
printf("server fork error");
else if(chpid!=0)
{
close(sockfd);
printf("child serving client\n");
if((num_bytes= recv(newsockfd,revarr,99,0))== -1)
{
perror("recv");
exit(0);
}
}
close(newsockfd);
}
}
|