#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
/*#include <stdlib.h>*/
/*#include <unistd.h>*/
/*#include <arpa/inet.h>*/
#define MYPORT 3490
#define BACKLOG 10 /*how many pending connections queue will hold*/
main(void ){
int sockfd,new_fd;
struct sockaddr_in my_addr;/*my address information*/
struct sockaddr_in their_addr;/* connector's address information*/
int sin_size;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
printf("socket");
exit(1);
}
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(MYPORT);
my_addr.sin_addr.s_addr=INADDR_ANY;/*auto-fill with my IP*/
memset(&(my_addr.sin_zero),'/0',8);
/*don't forget your error checking for these calls:
*/
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1){
printf("bind");
exit(1);
}
if(listen(sockfd,BACKLOG)==-1){
printf("listen");
exit(1);
}
while(1){
sin_size=sizeof(struct sockaddr_in);
if((new_fd=accept(sockfd,(struct sockaddr *)&their_addr,&sin_size))==-1){
printf("accept");
continue;
}
printf("server:got connection from %s/n", inet_ntoa(their_addr.sin_addr));
close(sockfd);
if(send(new_fd,"Hello,World!/n",14,0)==-1)
printf("send");
close(new_fd);
exit(0);
}
return 0;
}