0
我正在寻找一些简单的基于libevent的TCP服务器的一些示例代码,它将传入的消息传播到所有连接的客户端。在网上,我只找到回应消息的TCP服务器。Brodcast与Libevent的TCP服务器
如果一个回波例如发现是在本页面底部http://www.wangafu.net/~nickm/libevent-book/Ref8_listener.html
我相信,它不是那么难以改变本网站所提供的代码,使消息brodcast到所有连接的客户端,但我不知道如何。
有人能告诉我吗?
编辑:是的,某种聊天服务器。它接缝我需要做的某事像这样:
void server_read_cb(struct bufferevent *bev, void *data)
{
struct evbuffer *input = bufferevent_get_input(bev);
struct evbuffer *output = bufferevent_get_output(bev);
char *mem = malloc(len); /* XXX: check for malloc failure */
evbuffer_remove(input, mem, len);
"for every connection conn" {
/* XXX you'll need to implement a real connection list;
the above isn't real C. */
evbuffer_add(bufferevent_get_output(conn), mem, len);
}
free(mem);
}
,但我不能把这个工作...
TCP服务器是否跟踪在任何给定时间连接到它的所有打开的TCP客户端?我认为管理所有这些连接需要更多的资源,而不是简单地在“听线”上发送消息。 – jp2code
从查看您链接的示例代码,我猜*服务器可以选择记录什么设备正在监听它,只要在建立连接时收到错误就从监听器列表中删除该设备'accept_error_cb'。 “WangAFu”文章似乎已将您寻找的特定实现留给程序员。 – jp2code