What is the problem with this server program?

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

int main()
{
int fd_server, fd_client, len;
struct sockaddr_in add_server;
fd_server = socket(AF_INET,SOCK_STREAM,0);
if (fd_server == -1){
perror("fd_sock");
exit(1);
}
add_server.sin_family = AF_INET;
add_server.sin_port = htons(4001);
add_server.sin_addr.s_addr = inet_addr("122.23.1.1");
len = sizeof(add_server);
if( bind(fd_server,(struct sockaddr*)&add_server,len) != 0)
perror("bind");
if(listen(fd_server,5) != 0)
perror("listen");
fd_client = accept(fd_server,(struct sockaddr*)&add_server,&len);
if(fd_client == -1)
perror("accept");
return 0;
}
a) it can not accept the request of any client
b) it will give the segmentation fault
c) there is no problem with this program
d) none of the mentioned

Submitted by: Murtaza
a) it can not accept the request of any client
Submitted by: Murtaza

Read Online Linux Debugging Job Interview Questions And Answers