Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - rxi/dyad: Asynchronous networking for C
Asynchronous networking for C . Contribute to rxi/dyad development by creating an account on GitHub.
Visit SiteGitHub - rxi/dyad: Asynchronous networking for C
Asynchronous networking for C . Contribute to rxi/dyad development by creating an account on GitHub.
Powered by 0x5a.live 馃挆
Overview
Dyad.c is an asynchronous networking library which aims to be lightweight, portable and easy to use. It can be used both to create small standalone servers and to provide network support to existing projects.
Getting started
The dyad.c and dyad.h files can be
dropped into an existing project; if you're using Windows you will also have to
link to ws2_32
.
An overview of the API can be found at doc/api.md.
Usage examples can be found at example/.
Server example
A simple server which listens on port 8000 and echoes whatever is sent to it:
#include <stdlib.h>
#include "dyad.h"
static void onData(dyad_Event *e) {
dyad_write(e->stream, e->data, e->size);
}
static void onAccept(dyad_Event *e) {
dyad_addListener(e->remote, DYAD_EVENT_DATA, onData, NULL);
dyad_writef(e->remote, "Echo server\r\n");
}
int main(void) {
dyad_init();
dyad_Stream *serv = dyad_newStream();
dyad_addListener(serv, DYAD_EVENT_ACCEPT, onAccept, NULL);
dyad_listen(serv, 8000);
while (dyad_getStreamCount() > 0) {
dyad_update();
}
dyad_shutdown();
return 0;
}
Client example
A simple example program which connects to a daytime server and prints the response:
#include <stdio.h>
#include "dyad.h"
static void onConnect(dyad_Event *e) {
printf("connected: %s\n", e->msg);
}
static void onData(dyad_Event *e) {
printf("%s", e->data);
}
int main(void) {
dyad_init();
dyad_Stream *s = dyad_newStream();
dyad_addListener(s, DYAD_EVENT_CONNECT, onConnect, NULL);
dyad_addListener(s, DYAD_EVENT_DATA, onData, NULL);
dyad_connect(s, "time-nw.nist.gov", 13);
while (dyad_getStreamCount() > 0) {
dyad_update();
}
dyad_shutdown();
return 0;
}
License
This library is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details.
C Programming Resources
are all listed below.
Made with 鉂わ笍
to provide different kinds of informations and resources.