#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>#include<netinet/in.h>#include<sys/socket.h>#defineSERV_PORT25555//服务器接听端口号#defineBACKLOG20//请求队列中允许请求数#defineBUF_SIZE256//缓冲区大小intmain(intargc,char*argv[]){intret;charbuf[BUF_SIZE];pid_tpid;//定义管道描述符intsockfd;//定义sock描述符intclientfd;//定义数据传输sock描述符structsockaddr_inhost_addr;//本机IP地址和端口信息structsockaddr_inclient_addr;//客户端IP地址和端口信息intlength=sizeofclient_addr;//创建套接字sockfd=socket(AF_INET,SOCK_DGRAM,0);//TCP/IP协议,数据流套接字if(sockfd==-1)//判断socket函数返回值{printf("创建socket失败.\n");return1;}/**绑定套接字**/bzero(&host_addr,sizeofhost_addr);host_addr.sin_family=AF_INET;//TCP/IP协议host_addr.sin_port=htons(SERV_PORT);//设定端口号host_addr.sin_addr.s_addr=INADDR_ANY;//本地IP地址ret=bind(sockfd,(structsockaddr*)&host_addr,sizeofhost_addr);//绑定套接字if(ret==-1)//判断bind函数返回值{printf("调用bind函数失败.\n");return1;}while(1){bzero(buf,sizeofbuf);ret=recvfrom(sockfd,buf,sizeof(buf),0,(structsockaddr*)&client_addr,&length);//接收接连请求if(ret==-1)//判断recvfrom函数的返回值{printf("接受连接成功");return1;}//printf("ClientIP:%s\n",inet_ntoa(client_addr.sin_addr.s_addr));//输出客户端IPprintf("接收到:%s\n",buf);sleep(2);}close(clientfd);//关闭连接return0;}