当前位置:  技术问答>linux和unix

libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket

    来源: 互联网  发布时间:2017-03-22

    本文导语:  本帖最后由 ihyy 于 2012-11-13 14:33:19 编辑 实现了前面部分,使用了buffevent。 在收到数据的时候写入一个socket的A链接,同时再建立新连接B复制数据过去。这个新建的B是否可以把socket的链接和绑定都建立在A链接的执行函...

本帖最后由 ihyy 于 2012-11-13 14:33:19 编辑
实现了前面部分,使用了buffevent。
在收到数据的时候写入一个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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3