使用libevent广播TCP-Server

时间:2011-06-29 18:39:52

标签: tcp libevent

我正在寻找一个基于简单的基于libevent的TCP-Server的示例代码,它将传入的消息广播到所有连接的客户端。在Web上我只找到了回复消息的TCP服务器。

如果找到一个回音示例,请点击此页面底部http://www.wangafu.net/~nickm/libevent-book/Ref8_listener.html

我确信更改本网站提供的代码并不是那么困难,因此消息会被广播给所有连接的客户端,但我不知道如何。

有人可以告诉我吗?

编辑:是的,某种聊天服务器。我需要做的接缝是这样的:

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);
}

但我无法将其付诸实践。

1 个答案:

答案 0 :(得分:1)

似乎你想要类似于聊天服务器的东西。一个例子是here。基本上,当您从一个连接接收数据时,您只需浏览连接列表并将相同的数据发送到每个连接(包括/不包括原始连接)。