client.c

来自「linux server client TCP」· C语言 代码 · 共 71 行

C
71
字号
#include        <stdio.h>#include        <stdlib.h>#include        <unistd.h>#include        <errno.h>#include        <string.h>#include	<netdb.h>#include        <sys/types.h>#include        <sys/socket.h>#include        <netinet/in.h>#include        <arpa/inet.h>                                                                                                                  #define MYPORT  3490#define MAXDATASIZE       100/*    用法:如:client 59.69.74.2 */                                                                                                               int     main(int argc,char *argv[]){        int     sockfd,numbytes;        struct  sockaddr_in     server_addr;	struct	hostent	*server;        char    buf[MAXDATASIZE];		if(argc!=2)	{		fprintf(stderr,"usages:client hostname\n");		exit(1);	}        if((server=gethostbyname(argv[1]))==NULL)	{		perror("gethostbyname");		exit(1);	}                                                                                                               if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)        {                perror("socket");                exit(1);        }         //绑定服务器的IP和PORT;                                                                                                              server_addr.sin_family=AF_INET;        server_addr.sin_port=htons(MYPORT);        server_addr.sin_addr=*((struct in_addr *)server->h_addr);        //也可server_addr.sin_addr.s_addr=inet_addr(argv[1]);	memset(&(server_addr.sin_zero),'\0',8);	//也可bzero(&(server_addr.sin_zero),8);	if(connect(sockfd,(struct sockaddr *)&server_addr,sizeof(struct sockaddr))==-1)	{		perror("connect");                exit(1);	}	if((numbytes=recv(sockfd,buf,MAXDATASIZE-1,0))==-1)	{                perror("recv");                exit(1);        }        buf[numbytes]='\0';	printf("Received:%s",buf);        close(sockfd);        return 0;}

⌨️ 快捷键说明

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