khj.c

来自「TCP/IP编程实现远程文件传输」· C语言 代码 · 共 52 行

C
52
字号
		/*客户机源程序khj.c*/ 
  #include<stdio.h> 
  #include<sys/types.h> 
  #include<sys/fcntl.h> 
  #include<sys/socket.h> 
  #include<sys/netinet/in.h> 
  #include<netdb.h> 
  #include<errno.h> 
  #include <string.h> 
  main() 
  { 
   char buf[1024],file[30]; 
   char *strs=″\n\n\t\t正在接收文件″; 
   int target; 
   register int k,s; 
   struct sockaddr_in sin; 
   struct hostent *hp; 
   system(″clear″); 
   printf(″\n″); 
     
   hp=gethostbyname(″server″); 
   if(hp==NULL){ 
          perror(″返回服务器地址信息错!!!″); 
    exit(1); 
   } 
   s=socket(AF_INET,SOCK_STREAM,0); 
   if(s<0){ 
    perror(″获取SOCKET号失败!!!″); 
    exit(2); 
   } 
   sin.sin_family=AF_INET; 
   sin.sin_port=htons(1500);/*端口号需与服务器程序使用的一致*/ 
   bcopy(hp->h_addr,&sin.sin_addr,hp->h_length); 
   printf(″\n\n\t\t正在与服务器连接…″); 
   if(connect(s,&sin,sizeof(sin),0)<0){ 
    perror(″不能与服务器连接!!!″); 
    exit(3); 
   } 
   while((k=read(s,file,sizeof(file)))<=0/*接收文件名*/ 
   if((target=open(file,o_WRONLY|O_CREAT|O_TRUNC,0644))<0){ 
    perror(″不能打开目标文件!!″); 
    exit(4); 
  } 
  strcat(strs,file); 
  strcat(strs,″,稍候…″); 
  write(1,strs,strlen(strs)); 
  while((k=read(s,buf,sizeof(buf)))>0) 
   write(tatget,buf,k); 
  printf(″\n\n\t\t接收文件成功!!!\n″); 
  close(s); 
  close(target); 
  }

⌨️ 快捷键说明

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