That looks like the basic outline but for a single thread I would suggest building the buffer events with BEV_OPT_DEFER_CALLBACKS so the callbacks are routed into the main thread. Otherwise the callbacks can be called from the worker threads directly and you could have a lot of threading fun to deal with.
KB > -----Original Message----- > From: owner-libevent-us...@freehaven.net [mailto:owner-libevent- > us...@freehaven.net] On Behalf Of ravone > Sent: Thursday, April 14, 2011 2:33 AM > To: libevent-users@seul.org > Subject: [Libevent-users] Multiple tcp client connections in single thread > with using libevent > > Is it possible to use libevent for create multiple tcp connections to > different servers in one thread? Could you write a sample > implementation of such a task? > > I have done so, but not sure that it's right: > > ... > int num_of_connect = 5; /*for example*/ > struct event_base *evbase; > struct bufferevent *bev[num_of_connect]; > struct sockaddr_in sin[num_of_connect]; > evbase = event_base_new(); > > for(int i=0;i<=(num_of_connect-1);i++){ > > sin[i].sin_family = AF_INET; > sin[i].sin_addr.s_addr = inet_addr(/*some addr*/); > sin[i].sin_port = htons(/*some port*/); > > bev[i] = bufferevent_socket_new(evbase, -1, BEV_OPT_CLOSE_ON_FREE); > > bufferevent_setcb(bev[i], cb_evread, cb_evwrite, cb_event, NULL); > bufferevent_socket_connect(bev[i], (struct sockaddr *)&sin[i], > sizeof(struct sockaddr_in)); > } > > event_base_dispatch(evbase); > ... > *********************************************************************** > To unsubscribe, send an e-mail to majord...@freehaven.net with > unsubscribe libevent-users in the body. *********************************************************************** To unsubscribe, send an e-mail to majord...@freehaven.net with unsubscribe libevent-users in the body.