📄 server.c
字号:
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<sys/socket.h>#include<sys/types.h>#include<netdb.h>#include<netinet/in.h>void nread(int socket_fd,char *buf,char len){ char count=0; int now=len; do{ count=read(socket_fd,buf,now); if(count==len) break; now=now-count; buf=buf+count; }while(now!=0); }int main(void){ int Server_Sockfd; int Client_Sockfd; char Test[8]="hello!"; struct sockaddr_in Server_addr; struct sockaddr_in Client_addr; char rec[100]; int sin_size; int count=0; //对接收到的数据进行计数 if((Server_Sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)// { printf("Socket create failed!\n"); exit(1); } printf("Socket create is successful!\n"); bzero(&Server_addr,sizeof(struct sockaddr_in)); Server_addr.sin_family=AF_INET; Server_addr.sin_addr.s_addr=htons(INADDR_ANY);//inet_addr(Server_IP); Server_addr.sin_port=htons(7000); if(bind(Server_Sockfd,(struct sockaddr *)&Server_addr,sizeof(struct sockaddr))==-1) { printf("Bind failed!\n"); exit(1); } printf("bind port is successful!\n"); if(listen(Server_Sockfd,5)==-1) { printf("Listen is failed!\n"); exit(1); } printf("listen port is successful!"); printf(".......................................................\n"); sin_size=sizeof(struct sockaddr_in); if((Client_Sockfd=accept(Server_Sockfd,(struct sockaddr *)&Client_addr,&sin_size))==-1)// { printf("Accept is failed!\n"); exit(1); } printf("receive client connect from IP:%s!\n",inet_ntoa(Client_addr.sin_addr)); while(1) { nread(Client_Sockfd,rec,28); rec[28]='\0'; printf("receive data from cilent is:%s\n",rec); count++; printf("server receive data success! count is:%d\n",count); } close(Server_Sockfd); exit(0); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -