#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); }