klaunchserver.old
来自「在XWindows下使用打印机界面发送传真」· OLD 代码 · 共 116 行
OLD
116 行
#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>static int socketFd = -1;static int acceptFd = -1;static int createSocket(int argc, char **argv);static int closeSocket(void);static int acceptConnection(void);static int handleRequest(void);static void closeConnection(void);int main(int argc, char **argv){ int rv = 0; if (!createSocket(argc, argv)) { return -1; } while (1) { if (!acceptConnection()) { rv = -2; break; } if (!handleRequest()) { rv = -3; break; } closeConnection(); } closeSocket(); return rv;}static int createSocket(int argc, char **argv){ int rv = 0; struct sockaddr_in sa; int portInt = 6666; if (argc < 2) { return rv; } portInt = atoi(argv[1]); socketFd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (socketFd < 0) { return rv; } sa.sin_family = AF_INET; sa.sin_port = htons(portInt); sa.sin_addr.s_addr = htonl(INADDR_ANY); if (bind(socketFd, (struct sockaddr *)&sa, sizeof(struct sockaddr)) < 0) { return rv; } if (listen(socketFd, 10) < 0) { return rv; } rv = 1; return rv;}static int closeSocket(void){ (void)close(socketFd);}static int acceptConnection(void){ int rv = 1; struct sockaddr_in sa; int saSize; acceptFd = accept(socketFd, &sa, &saSize); if (acceptFd < 0) { rv = 0; } return rv;}static int handleRequest(void){ int rv = 0; char request[2048]; if (read(acceptFd, request, 2047) < 0) { return; } printf("accept: %s\n", request); (void)system(request); rv = 1; return rv;}static void closeConnection(void){ (void)close(acceptFd);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?