📄 tcp_client.c
字号:
/* * Description: * tcp client example * tcp echo client: echo back the received data. * * What is shown in this example: * 1. How to program a tcp client * * Usage: ./tcp_client.o server_IP server_port * */#include <stdio.h>#include <errno.h>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>intmain(argc, argv) int argc; char *argv[];{ int fd, tcp_port, i, ret; struct sockaddr_in dest; char buf[1024]; if ( argc != 3 ) { printf("Usage: ./tcp_client.o server_IP server_port\n"); return -1; } /*create a socket*/ fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (fd < 0) { printf("socket failed\n"); return 0; } bzero(&dest, sizeof(dest)); dest.sin_family = AF_INET; tcp_port = atoi(argv[2]); /*get server port*/ dest.sin_port = htons(tcp_port); inet_aton(argv[1], &dest.sin_addr); /*get server ip*/ /*connect to server, retry 3 times*/ for(i=0; i<3; i++) { ret = connect(fd, (struct sockaddr*)&dest, sizeof(dest)); if (ret == 0) { printf("connect ok\r\n"); break; } } if (i == 3) { printf("connect failed\r\n"); close(fd); return; } while(1) { /*when data received, send them back*/ ret = recv(fd, buf, sizeof(buf), 0); if (ret > 0) { send(fd, buf, ret, 0); } else if (ret == 0) { printf("disconnect by remote\r\n"); break; } else if (ret < 0) { printf("read from ethernet failed, errno: %d\r\n", errno); break; } } close(fd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -