⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.c~

📁 unix高级编程开发环境
💻 C~
字号:
/* server.c */
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <netdb.h>
#include <netinet/in.h>
#include <stdlib.h>
#define MYPORT 4000 
#define BACKLOG 10
#define DEFAULT_IP "219.225.51.250"
int main(){	int sockzw,sockbd,newzw,sin_size;	struct sockaddr_in my_addr;	struct sockaddr_in cl_addr;		sockzw = socket(AF_INET, SOCK_STREAM, 0); 	my_addr.sin_family = AF_INET; /* host byte order */ 	my_addr.sin_port = htons(MYPORT); /* short, network byte order */ 	my_addr.sin_addr.s_addr = inet_addr(DEFAULT_IP); 	bzero(&(my_addr.sin_zero),8); /* zero the rest of the struct */	printf("the IPADDR is:%d\n",sockzw); 		/* don't forget your error checking for bind(): */ 	sockbd = bind(sockzw,(struct sockaddr*)&my_addr,sizeof(struct sockaddr));	printf("the sockbd is :%d\n",sockbd);	if (sockbd==-1)	{		perror("bind failure!\n");	}	else	{			printf("bind success!\n"); 	}	if (listen(sockzw, BACKLOG) == -1)	{		perror("listen.....");		exit(1);	}	else	{		printf("listen success!\n");	}	
while(1)
 { printf("Waiting for client!\n");
   sin_size=sizeof(struct sockaddr_in);
  if((newzw=accept(sockzw,(struct sockaddr*)&cl_addr,&sin_size))==-1)
     {perror("accept....");
      continue;  }
  else
    printf("accept success!\n");
 
if(!fork())
 {if(send(newzw,"hello,zhongwei!\n",14,0)==-1)
  {perror("send.....");
   close(newzw);
   exit(0);
  }
  printf("send success!\n");
  close(newzw);
 }
 waitpid(-1,NULL,WNOHANG)>0;
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -