admin 管理员组

文章数量: 1184232


2023年12月22日发(作者:tokenizer占内存)

1 服务器端 2

3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10

11 #define MAXLINE 409612

13 int main(int argc, char** argv)14 {15 int listenfd, connfd;16 struct sockaddr_in servaddr;17 char buff[4096];18 int n;19

20 if( (listenfd = socket(AF_INET, SOCK_STREAM, 0)) == -1 ){21 printf("create socket error: %s(errno: %d)n",strerror(errno),errno);22 exit(0);23 }24

25 memset(&servaddr, 0, sizeof(servaddr));26 _family = AF_INET;27 _addr.s_addr = htonl(INADDR_ANY);28 _port = htons(6666);29

30 if( bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) == -1){31 printf("bind socket error: %s(errno: %d)n",strerror(errno),errno);32 exit(0);33 }34

35 if( listen(listenfd, 10) == -1){36 printf("listen socket error: %s(errno: %d)n",strerror(errno),errno);37 exit(0);38 }39

40 printf("======waiting for client's request======n");41 while(1){42 if( (connfd = accept(listenfd, (struct sockaddr*)NULL, NULL)) == -1){43 printf("accept socket error: %s(errno: %d)",strerror(errno),errno);44 continue;45 }46 n = recv(connfd, buff, MAXLINE, 0);47 buff[n] = '0';48 printf("recv msg from client: %sn", buff);49 close(connfd);50 }51

52 close(listenfd);53 }

客户端代码:

客户端 1 客户端 2

3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10

11 #define MAXLINE 409612

13 int main(int argc, char** argv)14 {15 int sockfd, n;16 char recvline[4096], sendline[4096];17 struct sockaddr_in servaddr;18

19 if( argc != 2){20 printf("usage: ./client n");21 exit(0);22 }23

24 if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){25 printf("create socket error: %s(errno: %d)n", strerror(errno),errno);26 exit(0);27 }28

29 memset(&servaddr, 0, sizeof(servaddr));30 _family = AF_INET;31 _port = htons(6666);32 if( inet_pton(AF_INET, argv[1], &_addr) <= 0){33 printf("inet_pton error for %sn",argv[1]);34 exit(0);35 }36

37 if( connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0){38 printf("connect error: %s(errno: %d)n",strerror(errno),errno);39 exit(0);40 }41

42 printf("send msg to server: n");43 fgets(sendline, 4096, stdin);44 if( send(sockfd, sendline, strlen(sendline), 0) < 0)45 {46 printf("send msg error: %s(errno: %d)n", strerror(errno), errno);47 exit(0);48 }49

50 close(sockfd);51 exit(0);52 }


本文标签: 客户端 内存 作者 代码