// SNL Server Demo (echo server)
#include <snl.h>
#include <stdio.h>
SNL_READ_CALLBACK(read_callback) {
// just send the buffer content back
snl_write(fd, buf, len);
}
SNL_LISTEN_CALLBACK(listen_callback) {
// start a new receiving thread
snl_read(fd, read_callback, NULL);
}
int
main(int argc, char **argv) {
if (snl_listen(NULL, 3000, listen_callback, NULL)) {
printf("can't connect to socket\n"); exit(1);
}
while (1) sleep(1);
return (0);
}
// SNL Client Demo (echo client)
#include <snl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
static int quit = 0;
SNL_READ_CALLBACK(read_callback) {
int i;
for (i=0; i<len; i++) printf("%c", ((char *)buf)[i]); printf("\n");
quit = 1;
}
int
main(int argc, char **argv) {
int server;
if (argc < 2) { printf("USAGE: client <text>\n"); exit(1); }
if ((server = snl_connect("localhost", 3000)) > 0) {
snl_read(server, read_callback, NULL);
snl_write(server, argv[1], strlen(argv[1]));
while (!quit) usleep(1); // wait for server response
} else {
printf("can't connect to server\n"); exit(1);
}
return (0);
}