示例#1
0
void on_socket(NS *ns, int fd, const char *data, int size, void *udata)
{
    int n;
    char *str;

    make_sure_that(data == nsIncoming(ns, fd));
    make_sure_that(size == nsAvailable(ns, fd));

    n = strunpack(data, size,
            PACK_STRING, &str,
            END);

    nsDiscard(ns, fd, n);

P   dbgPrint(stderr, "fd = %d, str = \"%s\", n = %d\n", fd, str, n);
}
示例#2
0
文件: echo.c 项目: jaccovanschaik/mx
void on_ping(MX *mx, int fd, uint32_t type, uint32_t version,
        char *payload, uint32_t size, void *udata)
{
    uint32_t count;

    strunpack(payload, size,
            PACK_INT32, &count,
            END);

    free(payload);

    fprintf(stderr, "Echo: received ping %d, broadcasting echo.\n", count);

    mxPackAndBroadcast(mx, echo_msg, 0,
            PACK_INT32, count,
            END);

    if (count == 5) {
        mxCancel(mx, ping_msg);
    }
}