libevent echo server example
libevent is an API that allows you to easily write non-blocking networking apps. It abstracts the differences between poll, select, kqueue, epoll and /dev/poll allowing you to automatically take advantage of the best mechanism provided by the OS you are running on with a fallback to the ubiquitous select. For I/O bound applications this is a great alternative to introducing threads to your application.
This is another one of those examples that I’ve had to provide to people before, usually part of my attempt to get them to use libevent rather than using threads to support multiple connections.
The first example, libevent_echosrv1.c simplifies the basic libevent based server by not properly handling writing to a non-blocking socket.
The second example, libevent_echosrv2.c properly handles writing data by queueing the data to be echoed back to the client with a TAILQ and waiting for libevent to call the write callback, at which point it writes as much data as it can to the socket. If there is more data to be written, the application re-adds the write event so the application is notified when it can write more data. This buffering of data adds a lot of complexity to the first example, but is necessary except for in trivial examples.
Example code: libevent_echosrv-20060829.tar.gz
References:
My TAILQ example post libevent homepage通过echo_server带你入门brpc! 前文我们介绍过如何编译安装brpc(brpc最新安装上手指南),今天通过echo_server来介绍一下brpc的基本使用方法与细节。
相关文章
- SQL Server loop - how do I loop through a set of records
- http接口{“message“: “The browser (or proxy) sent a request that this server could not understand.“}
- SQL Server 上可监控什么 - Part 2
- 【更新1.0:PoC发布】CVE-2020-1350: Windows DNS Server蠕虫级远程代码执行漏洞通告
- Linux 图形界面的显示原理是什么?---the graphical server and the window manager
- sql server 小技巧(2) 删除sql server中重复的数据
- sql server中使用组合索引需要注意的地方
- SQL SERVER中强制类型转换cast和convert的区别
- 如何在Ubuntu 12.04 Server 中安装图形用户界面
- 安卓获取软硬件信息并上传给server(Socket实现)
- SQL Server SSPI handshake failed报错,sql server修改windows账户密码的影响,sql server订阅发布客户端访问一直报错
- Sql Server 中 GAM、SGAM、PAM、IAM、DCM 和 BCM 的详解与区别
- SQL server 添加字段问题