📄 server.c
字号:
/*** soekct server***/#include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <time.h>#define SERVPORT 20001 /*服务器监听端口号 */ #define BACKLOG 10 /* 最大同时连接请求数 */ main(){ int sockfd,client_fd; /*sock_fd:监听socket;client_fd:数据传输socket */ int sin_size; struct sockaddr_in my_addr; /* 本机地址信息 */ struct sockaddr_in remote_addr; /* 客户端地址信息 */ time_t tt; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket创建出错!"); exit(1); } my_addr.sin_family=AF_INET; my_addr.sin_port=htons(SERVPORT); my_addr.sin_addr.s_addr = INADDR_ANY; bzero(&(my_addr.sin_zero),8); if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) { perror("bind出错!"); exit(1); } if (listen(sockfd, BACKLOG) == -1) { perror("listen出错!"); exit(1); } while(1) { sin_size = sizeof(struct sockaddr_in); if ((client_fd = accept(sockfd, (struct sockaddr *)&remote_addr,&sin_size)) == -1) { perror("accept出错"); continue; } printf("received a connection from %s\n", inet_ntoa(remote_addr.sin_addr)); time( &tt ); printf("SERVER receive at %s\n", ctime( &tt )); sleep( 1200 ); time( &tt ); printf("SERVER send at %s\n", ctime( &tt )); if (!fork()) { /* 子进程代码段 */ if (send(client_fd, "Hello, you are connected!", 26, 0) == -1) perror("send出错!"); close(client_fd); exit(0); } close(client_fd); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -