当前位置: 技术问答>linux和unix
libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
来源: 互联网 发布时间:2017-03-22
本文导语: 本帖最后由 ihyy 于 2012-11-13 14:33:19 编辑 实现了前面部分,使用了buffevent。 在收到数据的时候写入一个socket的A链接,同时再建立新连接B复制数据过去。这个新建的B是否可以把socket的链接和绑定都建立在A链接的执行函...
在收到数据的时候写入一个socket的A链接,同时再建立新连接B复制数据过去。这个新建的B是否可以把socket的链接和绑定都建立在A链接的执行函数中?这样的实现会不会有什么问题?
例:我在函数libevnet_loop中实现event注册和启动socket,链接A。
// 监听读取的socket链接
listener=evconnlistener_new_bind(base, listener_Rd, (void*)base, LEV_OPT_REUSEABLE|LEV_OPT_CLOSE_ON_FREE, -1, (struct sockaddr*)&sin, sizeof(sin));
函数listener_Rd中:
bufferevent_setcb(bev, conn_read, conn_write, conn_event, lo_eventWithState);
bufferevent_enable(bev, EV_READ);
bufferevent_disable(bev, EV_WRITE);
我是否可以在listener_Rd中才声明新的socket B并绑定,还是应该在原来声明socket的libevnet_loop中绑定新的B?如果,原声明处增加B之后的evenbuf该如何实现socket链接?
|
就是做个反向代理而已, 参考libevent源码包里sample内的proxy.c吧,用的都是现成的函数, 帮你完成非阻塞连接, 然后监听事件.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。