#include #include "../../reowolf.h" #include "../utility.c" int main() { Connector* c = connector_new(); printf("configuring...\n"); char * pdl = buffer_pdl("eg_protocols.pdl"); check("config ", connector_configure(c, pdl, "sync_two")); check("bind 0 ", connector_bind_active(c, 0, "127.0.0.1:7000")); check("bind 1 ", connector_bind_active(c, 1, "127.0.0.1:7001")); check("bind 2 ", connector_bind_native(c, 2)); check("bind 3 ", connector_bind_native(c, 3)); printf("connecting...\n"); check("connect", connector_connect(c, 5000)); const unsigned char * msg; const char * nth[2] = {"first", "second"}; int i, code, msg_len; char yn[2]; while(true) { printf("\nround %d...\n", i); printf("Which of the two messages should we receive? (y/n)(y/n) (eg: yy): "); scanf(" %c%c", &yn[0], &yn[1]); for (i = 0; i < 2; i++) { if (yn[i] != 'y' && yn[i] != 'n') { printf("Expected (y/n) input!"); continue; } } printf("Receiving messages [%c, %c]\n", yn[0], yn[1]); if (yn[0] == 'y') check("get first ", connector_get(c, 0)); if (yn[1] == 'y') check("get second ", connector_get(c, 1)); check("sync ", connector_sync(c, 1000)); for (i = 0; i < 2; i++) { if (yn[i] == 'y') { check("read ", connector_gotten(c, i, &msg, &msg_len)); printf("Got %s msg `%.*s`\n", nth[i], msg_len, msg); } } } printf("cleaning up\n"); connector_destroy(c); free(pdl); return 0; }