📄 echo_client.c
字号:
#include<stdio.h>#include<stdlib.h>#include<sys/socket.h>#include<sys/types.h>#include<netinet/in.h>#include<strings.h>#include<unistd.h>#include<arpa/inet.h>#include<string.h>#define ERROR -1#define MAX_DATA 1024int main(int argc, char **argv){ if(argc < 3) { printf("./client ip port"); exit(-1);} int ser; // create a socket if((ser = socket(AF_INET, SOCK_STREAM, 0)) == ERROR) { perror("server socket: "); exit(-1); }/* struct sockaddr_in client; bzero(&client, sizeof(client)); client.sin_family = AF_INET; client.sin_port = htons(12345); client.sin_addr.s_addr = INADDR_ANY; // bind a socket if((bind(ser, (struct sockaddr *)&client, sizeof(client))) == ERROR) { perror("bind : "); exit(-1); }*/ struct sockaddr_in server; bzero(&server, sizeof(server)); server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr(argv[1]); server.sin_port = htons(atoi(argv[2])); // connect if(connect(ser, (struct sockaddr*) &server, sizeof(server)) < 0) { perror("connect"); exit(-1); } int rbyte; char rbuf[MAX_DATA]; int rrbyte; char rrbuf[MAX_DATA]; do { // read stdin rbyte = read(0, rbuf, MAX_DATA); if(rbyte > 0) { // write socket write(ser, rbuf, rbyte); // read socket rrbyte = read(ser, rrbuf, MAX_DATA); // write stdout write(1, rrbuf, rrbyte); } else { perror("read"); } }while(rbyte > 0); close(ser); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -