windows下用libevent 开发一个echo服务

2021-06-15 01:04

阅读:585

标签:接口   bin   pac   ace   perror   stdio.h   main   平台   The   

#include 
#include 
#include 

#include 
using namespace std;

#include 
#include 

void accept_cb(int fd, short events, void* arg);
void socket_read_cb(bufferevent* bev, void* arg);
void event_cb(struct bufferevent *bev, short event, void *arg);
int tcp_server_init(int port, int listen_num);

int main(int argc, char** argv)
{
#ifdef WIN32
    WSADATA wsa_data;
    WSAStartup(0x0201, &wsa_data);
#endif

    int listener = tcp_server_init(9999, 10);
    if( listener == -1 )
    {
        perror(" tcp_server_init error ");
        return -1;
    }

    struct event_base* base = event_base_new();

    //添加监听客户端请求连接事件
    struct event* ev_listen = event_new(base, listener, EV_READ | EV_PERSIST,
        accept_cb, base);
    event_add(ev_listen, NULL);

    event_base_dispatch(base);
    event_base_free(base);

#ifdef WIN32
    WSACleanup();
#endif

    return 0;
}



void accept_cb(int fd, short events, void* arg)
{
    evutil_socket_t sockfd;

    struct sockaddr_in client;
    int len = sizeof(client);

    sockfd = ::accept(fd, (struct sockaddr*)&client, &len );
    evutil_make_socket_nonblocking(sockfd);

    cout 

 

windows下用libevent 开发一个echo服务

标签:接口   bin   pac   ace   perror   stdio.h   main   平台   The   

原文地址:https://www.cnblogs.com/dilex/p/10390987.html


评论


亲,登录后才可以留言!