📄 tcpclient.c
字号:
/**********************************************************\* *\* program name:tcpclient.c ** Author:Liang gang & Hu Xiao-qin *\* Funtion:This program is just a demostrate program *\* to tell students how to use socket to *\* make a tcp communation. *\* Date: 03-06-2009 *\* *\***********************************************************/#include<stdlib.h>#include<stdio.h>#include<sys/socket.h>#include<netdb.h>#include<string.h>#include<unistd.h>#include<netinet/in.h>#include<arpa/inet.h>#define PORT 8300void print_usage(char * cmd){ fprintf(stderr," %s usage:\n",cmd); fprintf(stderr,"%s IP_Addr [port]\n",cmd);}int main(int argc,char** argv){ struct sockaddr_in server; int ret; int len; int port; int sockfd; int sendnum; int recvnum; char send_buf[2048]; char recv_buf[2048]; if ((2>argc)|| (argc >3)) { print_usage(argv[0]); exit(1); } if (3==argc) { port = atoi(argv[2]); } if (-1==(sockfd=socket(AF_INET,SOCK_STREAM,0))) { perror("can not create socket\n"); exit(1); } memset(&server,0,sizeof(struct sockaddr_in)); server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr(argv[1]); server.sin_port = htons(port); if (0>(ret=connect(sockfd,(struct sockaddr*)&server,sizeof(struct sockaddr)))) { perror("connect error"); close(sockfd); exit(1); } while(1) { printf("tcp>"); gets(send_buf); printf("\n"); if (0>(len=send(sockfd,send_buf,strlen(send_buf),0))) { perror("send data error\n"); close(sockfd); exit(1); } if (0==strcmp(send_buf,"quit")) { perror("quitting remote ctroling\n"); break; } if (0>(len=recv(sockfd,recv_buf,2048,0))) { perror("recv data error\n"); close(sockfd); exit(1); } recv_buf[len]='\0'; fprintf(stdout,"%s\n",recv_buf); } close(sockfd);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -