From 85131d8acfca55810205af625d65358f006f3de7 Mon Sep 17 00:00:00 2001 From: Niklas Halle Date: Mon, 1 Jun 2020 15:05:36 +0200 Subject: improvements --- 03_exercise/srv/server.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to '03_exercise/srv/server.c') diff --git a/03_exercise/srv/server.c b/03_exercise/srv/server.c index bb2b3ab..818036a 100644 --- a/03_exercise/srv/server.c +++ b/03_exercise/srv/server.c @@ -9,6 +9,8 @@ #define PORT 9000 +#define BUF_SIZE 256 + static inline void die(const char *msg) { perror(msg); exit(-1); @@ -20,8 +22,8 @@ int main() { socklen_t sad_sz = sizeof(struct sockaddr_in); int sfd, cfd; ssize_t bytes; - char in_buf[256]; - char out_buf[256]; + char in_buf[BUF_SIZE]; + char out_buf[BUF_SIZE]; srv_addr.sin_family = AF_INET; srv_addr.sin_port = htons(PORT); @@ -44,11 +46,11 @@ int main() { printf("srv: connected: %s\n", inet_ntoa(cli_addr.sin_addr)); - while ((bytes = read(cfd, in_buf, sizeof(in_buf))) != 0) { + while ((bytes = read(cfd, in_buf, BUF_SIZE)) != 0) { if (bytes < 0) die("Couldn't receive message"); - printf("srv: %s\n", in_buf); + //printf("srv: %s\n", in_buf); if (strcmp(in_buf, "get") == 0) { // TODO: implement get @@ -58,12 +60,15 @@ int main() { strncpy(out_buf, "pong!", sizeof(out_buf)); } else { // TODO: connect our shell implementation - strncpy(out_buf, "got: ", sizeof(out_buf)); - strncpy(out_buf + sizeof("got: "), in_buf, sizeof(out_buf) - sizeof("got: ")); + memcpy(out_buf, "got: ", sizeof(out_buf)); + memcpy(out_buf + sizeof("got: ") - 1, in_buf, BUF_SIZE - sizeof("got: ") + 1); } if (write(cfd, out_buf, sizeof(out_buf)) < 0) die("Couldn't send message"); + + memset(in_buf, 0, BUF_SIZE); + memset(out_buf, 0, BUF_SIZE); } printf("srv: closing down\n"); -- cgit v1.2.3-54-g00ecf