Libevent bufferevent 的 evbuffer_add

Posted

技术标签:

【中文标题】Libevent bufferevent 的 evbuffer_add【英文标题】:Libevent bufferevent's evbuffer_add 【发布时间】:2015-04-13 06:47:36 【问题描述】:

我正在使用 Libevent 库 2.0 进行套接字通信。 为了向evbuffer添加数据,我使用了evbuffer_add。 bufferevent 将数据存储在其内部缓冲区中,并使用一些预定义的超时和水印设置通过套接字传输数据。

我的问题是,有没有办法控制数据传输?我们可以在写入任意随机字节数之后的任何时间显式传输数据吗?

【问题讨论】:

【参考方案1】:

此功能背后的理念是即发即弃。但是,您可以添加一个回调,以便在发送最终发生时,您可以做一些事情: evbuffer_add_cb

这不允许您进行太多控制,但您可以将其用于某些行为,例如附加缓冲区。

【讨论】:

我想每次传输固定数量的字节。然而,即使在设置写水印高 = 4K 之后,有时也只发送不到 1K 字节。有没有办法通过添加一些填充字节或任何其他机制来强制传输?

以上是关于Libevent bufferevent 的 evbuffer_add的主要内容,如果未能解决你的问题,请参考以下文章

Libevent源码分析--- bufferevent

libevent & bufferevent

libevent源码分析:bufferevent

Libevent bufferevent 套接字刷新

libevent::bufferevent

知道所有回调都使用 libevent 和 bufferevent_free 运行