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

📄 client1.c

📁 这个是linux下
💻 C
字号:
	#include <stdio.h> 	#include <unistd.h>	#include <strings.h>	#include <sys/types.h> 	#include <sys/socket.h> 	#include <netinet/in.h> 	#include <netdb.h>        /* netbd.h is needed for struct hostent  */ 	#define PORT 1234   /* Open Port on Remote Host */ 	#define MAXDATASIZE 1024 /* Max number of bytes of data */ 	int main(int argc, char *argv[]) 	{ 	int fd, numbytes;   /* files descriptors */ 	char recvbuf[MAXDATASIZE];  /* buf will store received text */ 	char sendbuf[MAXDATASIZE];        char cliname[100];	struct hostent *he;         /* structure that will get information about remote host */ 	struct sockaddr_in server;  /* server's address information */ 	const char condition[]="quit\n";	if (argc !=2) {       /* this is used because our program will need one argument (IP) */ 	printf("Usage: %s <IP Address>\n",argv[0]); 	exit(1); 	} 	if ((he=gethostbyname(argv[1]))==NULL){ /* calls gethostbyname() */ 	printf("gethostbyname() error\n"); 	exit(1); 	} 	if ((fd=socket(AF_INET, SOCK_STREAM, 0))==-1){  /* calls socket() */ 	printf("socket() error\n"); 	exit(1); 	} 	bzero(&server,sizeof(server));	server.sin_family = AF_INET; 	server.sin_port = htons(PORT); /* htons() is needed again */ 	server.sin_addr = *((struct in_addr *)he->h_addr);  /*he->h_addr passes "*he"'s info to "h_addr" */ 	if(connect(fd, (struct sockaddr *)&server,sizeof(struct sockaddr))==-1){ /* calls connect() */ 	printf("connect() error\n"); 	exit(1); 	} 	                	  	printf("input your name:");                fgets(cliname,100,stdin);	/*	getchar();*/	if ((numbytes=send(fd,cliname,strlen(cliname),0)) == -1){  /* calls recv() */	     printf("send() error\n");		exit(0);		}while(1)		{	     /*fflush(stdin);*/                bzero(&sendbuf,strlen(sendbuf));		printf("input message:");         	fgets(sendbuf,MAXDATASIZE,stdin);	/*	getchar();*/    		if(strcmp(sendbuf,condition)==0)     		{    			exit(1);    		}         if ((numbytes=send(fd,sendbuf,strlen(sendbuf),0)) == -1){  /* calls recv() */             printf("send() error\n");            exit(1);           }	     bzero(&recvbuf,sizeof(recvbuf));		if ((numbytes=recv(fd,recvbuf,MAXDATASIZE,0)) == -1){  /* calls recv() */ 		printf("recv() error\n"); 		exit(1); 		} 		recvbuf[numbytes]='\0'; 	 printf("Server Message: %s\n",recvbuf);/*it prints server's welcome message  */          }	close(fd);   /* close fd */ 	}

⌨️ 快捷键说明

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