📄 client.c
字号:
#include <stdio.h>#include <sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#define MAX_CONNECT 2static int libsk_create_server(char *ip, short port){ int listenfd; struct sockaddr_in cliaddr, servaddr; listenfd = socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = inet_addr(ip); servaddr.sin_port = htons(port); bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); if(listen(listenfd, MAX_CONNECT) < 0) { listenfd = -1; } return listenfd;}static int libsk_accept(int sk){ int fd; struct sockaddr_in addr; int sin_size=sizeof(struct sockaddr_in); fd = accept(sk , (struct sockaddr*)&addr , &sin_size); return fd;}static int libsk_connect_to(char *serverip, short port){ int fd, ret; struct sockaddr_in servaddr; if(!serverip) { } fd = socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(port); inet_pton(AF_INET, serverip, &servaddr.sin_addr); ret = connect(fd, (struct sockaddr *) &servaddr, sizeof(servaddr)); if(ret == -1) { close(fd); fd = -1; } return fd;}static int libsk_close(int sk){ if((sk != 0) && (sk != -1)) { close(sk); } return 0;}int main(int argc, char *argv[]){ int sk; if(argc < 3) { printf("use:%s server port data", argv[0]); exit(0); } sk = libsk_connect_to(argv[1], atoi(argv[2])); if(sk < 0) { printf("connect to server failed\n"); exit(0); } else { char buf[32]; memset(buf , 0 , 32); if(argc >= 4) { int size = strlen(argv[3]) > 32 ? 32 : strlen(argv[3]); printf("size = %d strlen(argv[3]) %d \n" , size , strlen(argv[3])); memcpy(buf , argv[3] , size); } else { snprintf(buf , 32 , "%s" , "user put null\n"); } write(sk, buf, 32); libsk_close(sk); } exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -