Я ищу пример кода мертвого простого TCP-сервера на основе libevent, который транслирует входящие сообщения всем подключенным клиентам. В Интернете я нашел только 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);
}
Но я не могу заставить это работать.