コード例 #1
0
ファイル: thr_sender.c プロジェクト: proxyio/xio
int task_main(void* args) {
    int i;
    int eid;
    int size;
    int rts;
    char* ubuf;

    if (argc < 4) {
        printf("usage: thr_sender <connect-to> <msg-size> <roundtrips>\n");
        return 0;
    }

    size = atoi(argv[2]);
    rts = atoi(argv[3]);
    BUG_ON((eid = sp_endpoint(SP_REQREP, SP_REQ)) < 0);
    BUG_ON(sp_connect(eid, argv[1]) < 0);

    BUG_ON(sp_send(eid, ualloc(size)) != 0);

    for (i = 0; i < rts; i++) {
        BUG_ON(sp_send(eid, ualloc(size)) != 0);
    }

    BUG_ON(sp_recv(eid, &ubuf) != 0);
    ufree(ubuf);

    sp_close(eid);
    return 0;
}
コード例 #2
0
ファイル: ruby_xio.c プロジェクト: tniuli/xio
static VALUE rb_sp_connect (VALUE self, VALUE eid, VALUE sockaddr)
{
	int _eid = FIX2INT (eid);
	const char *_sockaddr = RSTRING (sockaddr)->ptr;

	return INT2FIX (sp_connect (_eid, _sockaddr) );
}
コード例 #3
0
ファイル: ui_test.c プロジェクト: Reve/Shakespeer
void client(const char *working_directory)
{
    sp_t *sp = sp_create(NULL);

    fail_unless(sp_connect(sp, working_directory, NULL) == 0);
    fail_unless(sp->io_channel);

    sp_send_search_all(sp, "search_string", 4711, SHARE_SIZE_MAX, SHARE_TYPE_ANY, 17);
    sp_send_search(sp, "hub", "search_string", 4711, SHARE_SIZE_MAX, SHARE_TYPE_ANY, 17);
    sp_send_connect(sp, "hub2", "nick2", "email2", NULL, "taggtråd", FALSE, "lösenord", "CP1252");
    sp_send_disconnect(sp, "hub3");
    sp_send_public_message(sp, "hub4", "message4");
    sp_send_private_message(sp, "hub5", "nick5", "message5");
    sp_send_download_file(sp, "hub6", "nick6", "source6", 345645, "target6", "TTH6");
    sp_send_download_filelist(sp, "hub7", "nick7");
    sp_send_queue_remove_target(sp, "target8");
    sp_send_queue_remove_filelist(sp, "nick9");
    sp_send_queue_remove_source(sp, "target10", "nick10");
    sp_send_queue_remove_nick(sp, "nick11");
    sp_send_cancel_transfer(sp, "target12");
    sp_send_transfer_stats_interval(sp, 13);
    sp_send_set_port(sp, 1414);
    sp_send_add_shared_path(sp, "/path15");
    sp_send_remove_shared_path(sp, "/path16");
    sp_send_set_password(sp, "hub17", "password17");

    /* must be last, shuts down the server */
    sp_send_shutdown(sp);

    /* sp_free(sp); */
}
コード例 #4
0
ファイル: reqrep.c プロジェクト: chenbk85/nanomsg
int main ()
{
    int rc;
    int rep;
    int req1;
    int req2;
    int resend_ivl;
    char buf [7];

    /*  Test req/rep with raw socket types. */

    rc = sp_init ();
    errno_assert (rc == 0);
    rep = sp_socket (AF_SP_RAW, SP_REP);
    errno_assert (rep != -1);
    rc = sp_bind (rep, "inproc://a");
    errno_assert (rc >= 0);
    req1 = sp_socket (AF_SP_RAW, SP_REQ);
    errno_assert (req1 != -1);
    rc = sp_connect (req1, "inproc://a");
    errno_assert (rc >= 0);
    req2 = sp_socket (AF_SP_RAW, SP_REQ);
    errno_assert (req2 != -1);
    rc = sp_connect (req2, "inproc://a");
    errno_assert (rc >= 0);

    rc = sp_send (req2, "ABC", 3, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_recv (rep, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 7);
    rc = sp_send (rep, buf, 7, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 7);
    rc = sp_recv (req2, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);

    rc = sp_send (req1, "ABC", 3, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_recv (rep, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 7);
    rc = sp_send (rep, buf, 7, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 7);
    rc = sp_recv (req1, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);

    rc = sp_close (rep);
    errno_assert (rc == 0);
    rc = sp_close (req1);
    errno_assert (rc == 0);    
    rc = sp_close (req2);
    errno_assert (rc == 0);
    rc = sp_term ();
    errno_assert (rc == 0);

    /*  Test req/rep with full socket types. */

    rc = sp_init ();
    errno_assert (rc == 0);
    rep = sp_socket (AF_SP, SP_REP);
    errno_assert (rep != -1);
    rc = sp_bind (rep, "inproc://a");
    errno_assert (rc >= 0);
    req1 = sp_socket (AF_SP, SP_REQ);
    errno_assert (req1 != -1);
    rc = sp_connect (req1, "inproc://a");
    errno_assert (rc >= 0);
    req2 = sp_socket (AF_SP, SP_REQ);
    errno_assert (req2 != -1);
    rc = sp_connect (req2, "inproc://a");
    errno_assert (rc >= 0);

    rc = sp_send (rep, "ABC", 3, 0);
    sp_assert (rc == -1 && sp_errno () == EFSM);
    rc = sp_recv (req1, buf, sizeof (buf), 0);
    sp_assert (rc == -1 && sp_errno () == EFSM);

    rc = sp_send (req2, "ABC", 3, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_recv (rep, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_send (rep, buf, 3, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_recv (req2, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);

    rc = sp_send (req1, "ABC", 3, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_recv (rep, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_send (rep, buf, 3, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_recv (req1, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);

    rc = sp_close (rep);
    errno_assert (rc == 0);
    rc = sp_close (req1);
    errno_assert (rc == 0);    
    rc = sp_close (req2);
    errno_assert (rc == 0);
    rc = sp_term ();
    errno_assert (rc == 0);

    /*  Test re-sending of the request. */

    rc = sp_init ();
    errno_assert (rc == 0);
    rep = sp_socket (AF_SP, SP_REP);
    errno_assert (rep != -1);
    rc = sp_bind (rep, "inproc://a");
    errno_assert (rc >= 0);
    req1 = sp_socket (AF_SP, SP_REQ);
    errno_assert (req1 != -1);
    rc = sp_connect (req1, "inproc://a");
    errno_assert (rc >= 0);
    resend_ivl = 100;
    rc = sp_setsockopt (req1, SP_REQ, SP_RESEND_IVL,
        &resend_ivl, sizeof (resend_ivl));
    errno_assert (rc == 0);

    rc = sp_send (req1, "ABC", 3, 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_recv (rep, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);
    rc = sp_recv (rep, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    sp_assert (rc == 3);

    rc = sp_close (req1);
    errno_assert (rc == 0);
    rc = sp_close (rep);
    errno_assert (rc == 0);
    rc = sp_term ();
    errno_assert (rc == 0);

    return 0;
}