From 96376650d2f416336a1c35568a43b6221ee0f216 Mon Sep 17 00:00:00 2001 From: ada-dmitry Date: Wed, 1 Nov 2023 11:43:41 +0300 Subject: [PATCH] mod1 --- TMP/Practice/01.11/data.h | 12 +++ TMP/Practice/01.11/inet.c | 146 ++++++++++++++++++++++++++++++++++ TMP/Practice/01.11/o_app | Bin 0 -> 17080 bytes TMP/Practice/01.11/on_app2 | Bin 0 -> 16208 bytes TMP/Practice/01.11/on_less2.c | 29 +++++++ 5 files changed, 187 insertions(+) create mode 100644 TMP/Practice/01.11/data.h create mode 100644 TMP/Practice/01.11/inet.c create mode 100755 TMP/Practice/01.11/o_app create mode 100755 TMP/Practice/01.11/on_app2 create mode 100644 TMP/Practice/01.11/on_less2.c diff --git a/TMP/Practice/01.11/data.h b/TMP/Practice/01.11/data.h new file mode 100644 index 0000000..ae8a441 --- /dev/null +++ b/TMP/Practice/01.11/data.h @@ -0,0 +1,12 @@ +#define DATA "\ + + + + + + Document</ title> + </ head> + <body> + + </ body> < / html > + " \ No newline at end of file diff --git a/TMP/Practice/01.11/inet.c b/TMP/Practice/01.11/inet.c new file mode 100644 index 0000000..2c69301 --- /dev/null +++ b/TMP/Practice/01.11/inet.c @@ -0,0 +1,146 @@ +#include <netinet/in.h> +#include <netdb.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <signal.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + +#define FIN "exit" +#define FINS "exit_s" +#define FINC "exit_c" +#define BUF 1024 +#define DATA "Answer" +#define GET "GET" +#define HTTPOK "HTTP/1.1 200 OK\n\n" +#define INDEX "index.html" +// #include "data.h" + +void session(int msgsock) +{ + int sock; + socklen_t length; + struct sockaddr_in server; + char ibuf[BUF]; + char obuf[BUF]; + int rval, sval; + int fd, offt; + do + { + memset(ibuf, 0, BUF); + if ((rval = read(msgsock, ibuf, 1024)) == -1) + perror("reading stream message"); + dprintf(1, "-[%d]\n", rval); + if (rval == 0) + printf("Connection finished\n"); + else + { + dprintf(1, "[%s]\n", ibuf); + memset(obuf, 0, BUF); + if (!strncmp(ibuf, GET, 3)) + { +#ifdef INDEX + strcpy(obuf, HTTPOK); + offt = strlen(obuf); + fd = open(INDEX, O_RDONLY); + read(fd, obuf + offt, BUF - offt); + close(fd); +#else + strcpy(obuf, DATA1); +#endif + } + else + { + strcpy(obuf, DATA); + } + sval = send(msgsock, obuf, strlen(obuf), 0); + dprintf(1, "Sent [%d]\n", sval); + } + } while ((rval > 0) && (strncmp(ibuf, GET, 3))); + exit(0); +} + +int main(int argc, char *argv[]) +{ + int sock; + socklen_t length; + struct sockaddr_in server; + int msgsock; + pid_t pid; + const int enable = 1; + + sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock == -1) + { + perror("opening stream socket"); + exit(1); + } + if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0) + exit(2); + server.sin_family = AF_INET; + server.sin_addr.s_addr = htonl(INADDR_ANY); + if (argc == 2) + server.sin_port = htons(atoi(argv[1])); + else + server.sin_port = 0; + + if (bind(sock, (struct sockaddr *)&server, sizeof server) == -1) + { + perror("binding stream socket"); + exit(1); + } + + length = sizeof server; + if (getsockname(sock, (struct sockaddr *)&server, &length) == -1) + { + perror("getting socket name"); + exit(1); + } + printf("Socket port %d\n", ntohs(server.sin_port)); + + listen(sock, 5); + pid_t cpid; + do + { + if ((msgsock = accept(sock, (struct sockaddr *)NULL, (socklen_t *)NULL)) == -1) + perror("accept"); + else + { + cpid = fork(); + if (cpid == 0) + { + session(msgsock); + } + } + close(msgsock); + } while (1); + /* + do { + if ((msgsock = accept(sock,(struct sockaddr *) NULL,(socklen_t *) NULL)) == -1) + perror("accept"); + else + do { + memset(ibuf, 0, BUF); + if ((rval = read(msgsock, ibuf, 1024)) == -1) perror("reading stream message"); + dprintf(1, "-[%d]\n", rval); + if (rval == 0) printf("Connection finished\n"); + else{ + dprintf(1, "[%s]\n", ibuf); + memset(obuf, 0, BUF); + if (!strncmp(ibuf, GET, 3)){ + strcpy(obuf, DATA1); + }else{ + strcpy(obuf, DATA); + } + sval = send(msgsock, obuf, strlen(obuf), 0); + dprintf(1, "Sent [%d]\n", sval); + } + } while ((rval > 0) && (strncmp(ibuf, GET, 3))); + close(msgsock); + } while (strcmp(ibuf, FIN)) + */ + exit(0); +} diff --git a/TMP/Practice/01.11/o_app b/TMP/Practice/01.11/o_app new file mode 100755 index 0000000000000000000000000000000000000000..11469fdf0b1d957a3558dcfcf9e1667dbe9c450b GIT binary patch literal 17080 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 bCZbIqC6}wTnEO@sfAex>G1=qb5ygK2h}mBX literal 0 HcmV?d00001 diff --git a/TMP/Practice/01.11/on_app2 b/TMP/Practice/01.11/on_app2 new file mode 100755 index 0000000000000000000000000000000000000000..001225f9285a888817996de4c52fe8f6b91bd691 GIT binary patch literal 16208 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 literal 0 HcmV?d00001 diff --git a/TMP/Practice/01.11/on_less2.c b/TMP/Practice/01.11/on_less2.c new file mode 100644 index 0000000..fd8a104 --- /dev/null +++ b/TMP/Practice/01.11/on_less2.c @@ -0,0 +1,29 @@ +#include <stdio.h> +#include <sys/types.h> +#include <dirent.h> +#include <string.h> +#include <stdlib.h> + +int main(int argc, char *argv[]) +{ + + struct dirent **namelist; + int n; + char dir[255] = "."; + + if (argc > 1) + strcpy(dir, argv[1]); + n = scandir(dir, &namelist, 0, alphasort); + if (n < 0) + perror("scandir"); + else + { + while (n--) + { + printf("%s\n", namelist[n]->d_name); + free(namelist[n]); + } + free(namelist); + } + return 0; +} \ No newline at end of file