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

📄 tcp_echo_cli.c

📁 linux下的多个网络通讯的例子 可多参考下
💻 C
字号:
/* * TCP 客户端演示代码 */                                     #include <stdio.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 MYPORT 4950  	int main(int argc,char *argv[]) {                     		int sockfd,numbytes;                                  		char buf[100];                                        		struct hostent *he;                                   		struct sockaddr_in their_addr;                        				unsigned short port;		int i = 0;            						if (argc != 4) {                                                                      fprintf(stderr,"usage: talker hostname message port\n");                               exit(1);                                                                      }             port = (unsigned short ) atoi(argv[3]);  				   /* 尝试做一下域名转换*/                                                                                		    if ((he=gethostbyname(argv[1])) == NULL) {  /* get the host info */           		        perror("gethostbyname");                                                  		        exit(1);                                                                  		    }  		       				                      		//第一步:建立一个TCP套接字                                   		if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1) {    			perror("socket");                                     			exit(1);                                              		}      								                                               		//第二步:设置服务器地址和端口2323		// 		memset(&their_addr,0,sizeof(their_addr)); 		               		their_addr.sin_family = AF_INET;                      		their_addr.sin_port = htons(port);                    		their_addr.sin_addr.s_addr = inet_addr(argv[1]);		//	their_addr.sin_addr.s_addr = inet_addr("192.168.0.146");		//	their_addr.sin_addr.s_addr = *((struct in_addr *)he->h_addr); 		memset(&(their_addr.sin_zero),0,8);							printf("connect server %s:%d\n",argv[1],port);				                   		//第三步:用connect 和服务器建立连接 ,		 //注意,这里没有使用本地端口,将由协议栈自动分配一个端口                                   		if(connect(sockfd,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))==-1){                                                			perror("connect");                                    			exit(1);                                              		}                                                     		//第四步,向服务器发送字符串"hello!"   		strcpy(buf,argv[2]);                       		if(send(sockfd,buf,6,0)==-1) {                   			perror("send");                                       			exit(1);                                              		}                                                     		//第五步:接受从服务器返回的信息                              		if((numbytes = recv(sockfd,buf,100,0))==-1) {         			perror("recv");                                       			exit(1);                                              		}                                                     		buf[numbytes] = 0;                                   		printf("result:%s\n",buf);   				//第六步,关闭网络联接                           		close(sockfd);                                        		return 0;                                             }                                                    

⌨️ 快捷键说明

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