diff options
Diffstat (limited to '03_exercise/echo_server')
-rw-r--r-- | 03_exercise/echo_server/Makefile | 22 | ||||
-rw-r--r-- | 03_exercise/echo_server/client.c | 47 | ||||
-rw-r--r-- | 03_exercise/echo_server/server.c | 53 |
3 files changed, 0 insertions, 122 deletions
diff --git a/03_exercise/echo_server/Makefile b/03_exercise/echo_server/Makefile deleted file mode 100644 index df023d1..0000000 --- a/03_exercise/echo_server/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/make -.SUFFIXES: -.PHONY: all run clean -.SILENT: run - -TAR = client server -CFLAGS = -c -Os -Wall -Werror - -%.o: %.c - $(CC) $(CFLAGS) $^ -o $@ - -%: %.o - $(CC) -o $@ $^ - -all: $(TAR) - -run: all - ./server& - ./client - -clean: - $(RM) $(RMFILES) $(TAR) *.o diff --git a/03_exercise/echo_server/client.c b/03_exercise/echo_server/client.c deleted file mode 100644 index a664221..0000000 --- a/03_exercise/echo_server/client.c +++ /dev/null @@ -1,47 +0,0 @@ - -#include <stdio.h> -#include <stdlib.h> - -#include <unistd.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - -static inline void die(const char* msg) -{ - perror(msg); - exit(-1); -} - -int main() -{ - struct sockaddr_in addr = { - .sin_family = AF_INET, - .sin_port = htons(8000), - .sin_addr.s_addr = inet_addr("127.0.0.1") - }; - char buf[256]; - int cfd; - - if ((cfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) - die("Couldn't open the socket"); - - if (connect(cfd, (struct sockaddr*) &addr, sizeof(addr)) < 0) - die("Couldn't connect to socket"); - - for (int i = 0; i < 5; ++i) - { - if (write(cfd, "Ping", 4) < 0) - die("Couldn't send message"); - - printf("[send] Ping\n"); - - if (read(cfd, buf, sizeof(buf)) < 0) - die("Couldn't receive message"); - - printf("[recv] %s\n", buf); - } - - close(cfd); - return 0; -} diff --git a/03_exercise/echo_server/server.c b/03_exercise/echo_server/server.c deleted file mode 100644 index 5f647c1..0000000 --- a/03_exercise/echo_server/server.c +++ /dev/null @@ -1,53 +0,0 @@ - -#include <stdio.h> -#include <stdlib.h> - -#include <unistd.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> - -static inline void die(const char *msg) { - perror(msg); - exit(-1); -} - -int main() { - struct sockaddr_in srv_addr, cli_addr; - int sockopt = 1; - socklen_t sad_sz = sizeof(struct sockaddr_in); - int sfd, cfd; - ssize_t bytes; - char buf[256]; - - srv_addr.sin_family = AF_INET; - srv_addr.sin_port = htons(8000); - srv_addr.sin_addr.s_addr = INADDR_ANY; - - if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) - die("Couldn't open the socket"); - - setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, (char *) &sockopt, sizeof(sockopt)); - - if (bind(sfd, (struct sockaddr *) &srv_addr, sad_sz) < 0) - die("Couldn't bind socket"); - - if (listen(sfd, 1) < 0) - die("Couldn't listen to the socket"); - - cfd = accept(sfd, (struct sockaddr *) &cli_addr, &sad_sz); - if (cfd < 0) - die("Couldn't accept incoming connection"); - - while ((bytes = read(cfd, buf, sizeof(buf))) != 0) { - if (bytes < 0) - die("Couldn't receive message"); - - if (write(cfd, buf, bytes) < 0) - die("Couldn't send message"); - } - - close(cfd); - close(sfd); - return 0; -} |