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; }
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) ); }
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); */ }
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; }