📄 server.c
字号:
#include <sys/socket.h>#include <netinet/in.h>#include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <error.h>#include <unistd.h>#include<unistd.h>#include <sys/types.h>#include <fcntl.h>#include <sys/stat.h>#define SERVERPORT 3333#define BACKLOG 10#define MAXSIZE 8192int main(void){ int flags; int fd, writesize; struct sockaddr_in server_sockaddr; struct sockaddr_in client_sockaddr; int addrlen; addrlen = sizeof(struct sockaddr); int sockfd, bindfd, listenfd, clientfd, recvbytes; char buf[MAXSIZE]; sockfd = socket(AF_INET, SOCK_STREAM, 0); if(sockfd == -1) { printf("Create a socket error!!!\n"); exit(1); } else printf("sockfd success!!! sockfd = %d\n",sockfd); server_sockaddr.sin_family = AF_INET; server_sockaddr.sin_port = htons(SERVERPORT); server_sockaddr.sin_addr.s_addr = INADDR_ANY; memset(server_sockaddr.sin_zero, 0, sizeof(server_sockaddr.sin_zero)); bindfd = bind(sockfd, (struct sockaddr *)&server_sockaddr, sizeof(struct sockaddr)); if(bindfd == -1) { printf("bind error!!!\n"); exit(1); } else printf("bind success!!!\n"); listenfd = listen(sockfd, BACKLOG); if(listenfd == -1) { printf("listen error!!!\n"); exit(1); } else printf("listening-----\n"); /* if((flags=fcntl( sockfd, F_SETFL, 0))<0) perror("fcntl F_SETFL"); flags |= O_NONBLOCK; if(fcntl( sockfd, F_SETFL,flags)<0) perror("fcntl"); */ clientfd = accept(sockfd, (struct sockaddr *)&client_sockaddr, &addrlen); if(clientfd == -1) { printf("accept error!!!\n"); exit(1); } else printf("accept success!!!\n"); fd = open("/home/hongzhi/UNIX/linux_code/10/list", \ O_WRONLY | O_CREAT | O_TRUNC | O_APPEND); do { recvbytes = recv(clientfd, buf, sizeof(buf), 0); if(recvbytes == -1) { printf("recv error!!!\n"); exit(1); } else if(recvbytes > 0) { printf("recv success!!! %d\n",recvbytes); printf("receive : %s\n",buf); writesize = write(fd, buf, recvbytes); } else printf("END!!!\n"); } while(recvbytes > 0); close(sockfd); close(fd); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -