From e339f2d269fcaffed7beed67c3995fe3b67393eb Mon Sep 17 00:00:00 2001 From: Guangxiong Lin Date: Sat, 17 Dec 2022 21:24:04 +0800 Subject: Support on_connect function in server lib --- example/server.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 example/server.c (limited to 'example/server.c') diff --git a/example/server.c b/example/server.c new file mode 100644 index 0000000..fe8cba9 --- /dev/null +++ b/example/server.c @@ -0,0 +1,36 @@ +#include +#include +#include + +#include "../src/server.h" +#include "../src/connection.h" + +#define READ_BUFFER_SIZE 1024 + +static void echo(connection_t *conn) +{ + char buf[READ_BUFFER_SIZE]; + ssize_t n_read_bytes; + int fd = connection_fd(conn); + + for (;;) { + n_read_bytes = read(fd, buf, sizeof(buf)); + if (n_read_bytes > 0) { + printf("message from conn %d: %s\n", fd, buf); + write(fd, buf, sizeof(buf)); + } else if (n_read_bytes == 0) { + printf("conn %d disconnected\n", fd); + return; + } else if (n_read_bytes == -1) { + if (errno == EAGAIN || errno == EWOULDBLOCK) + break; + } + } +} + +int main() +{ + server_t *serv = server_create(); + server_on_connect(serv, echo); + server_run(serv); +} -- cgit v1.2.3