xqd_client.c

来自「这是一个简单的复数计算器」· C语言 代码 · 共 58 行

C
58
字号
#include <stdio.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#define SERVPORT 3333#define MAXDATASIZE 100main(int argc,char *argv[]){	int sockfd,recvbytes,server_fd,size,fd;	char buf[MAXDATASIZE];	struct hostent *host;	struct sockaddr_in serv_addr;	if(argc < 2){		fprintf(stderr,"Please enter the server's hostname!\n");		exit(1);	}	if((host=gethostbyname(argv[1]))==NULL){		perror("gethostbyname");		exit(1);	}	if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){		perror("socket");		exit(1);	}	serv_addr.sin_family=AF_INET;	serv_addr.sin_port=htons(SERVPORT);	serv_addr.sin_addr=*((struct in_addr *)host->h_addr);	bzero(&(serv_addr.sin_zero),8);	if(connect(sockfd,(struct sockaddr *)&serv_addr,\		sizeof(struct sockaddr))==-1){		perror("connect");		exit(1);	}	if((fd=open("./hello2.c",O_CREAT|O_TRUNC|O_WRONLY,0600))<0)	  {	    perror("open:");	    exit(1);	  }	while((recvbytes=recv(sockfd,buf,MAXDATASIZE,0))>=1)	  {	    if((size=write(fd,buf,100))<0)	      {		perror("write:");		exit(1);	      }			  }	printf("Received a file!\n");		close(sockfd);}

⌨️ 快捷键说明

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