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

ihyy 2012-11-13 02:32:04
实现了前面部分,使用了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链接?
...全文
223 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2012-11-13
  • 打赏
  • 举报
回复
就是做个反向代理而已, 参考libevent源码包里sample内的proxy.c吧,用的都是现成的函数, 帮你完成非阻塞连接, 然后监听事件.
ihyy 2012-11-13
  • 打赏
  • 举报
回复
补充,结构图:

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧