原创 ET還是LT?

出處:https://zhuanlan.zhihu.com/p/21374980?refer=yedongfuEPOLL事件的兩種模型:Level Triggered (LT) 水平觸發.socket接收緩衝區不爲空 有數據可讀 讀事件一

原创 網絡編程釋疑之:TCP半開連接的處理

熟悉基於TCP協議進行linux高性能、高併發服務端編程的朋友肯定應該知道每個文件描述符及其所佔的資源對併發量的影響。在這種7*24甚至*365不間斷運行的服務器上,一個描述符被浪費,兩個被浪費...如果被浪費的多了,那還何談高併發,高性

原创 SO_REUSEPORT

int evutil_make_listen_socket_reuseable_port(evutil_socket_t sock) { #if defined __linux__ && defined(SO_REUSEPORT)

原创 socket讀寫返回值的處理

在調用socket讀寫函數read(),write()時,都會有返回值。如果沒有正確處理返回值,就可能引入一些問題 總結了以下幾點 1當read()或者write()函數返回值大於0時,表示實際從緩衝區讀取或者寫入的字節數目 2當read

原创 關於sql 查詢時的 字段拼接

今天在做數據庫的數據遷移時,因用到的新庫和原有庫字段都不匹配,因此使用查詢插入的方式來批量移動數據,但再操作過程中遇到存path(/父id/上級父Id.../id/)問題,故查詢了網上的查詢字段拼接方式。 sql 中採用 + 號的形式

原创 設置O_NONBLOCK

int evutil_make_socket_nonblocking(evutil_socket_t fd) { #ifdef _WIN32     {         unsigned long non

原创 struct event

對事件處理流程有了高層的認識後,本節將詳細介紹libevent的核心結構event,以及libevent對event的管理。 1 libevent的核心-event       Libevent是基於事件

原创 libevent evutil_gettime_monotonic_

int evutil_gettime_monotonic_(struct evutil_monotonic_timer *base, struct timeval *tp) {     struct timespec ts; // ba

原创 event_base01

出處:http://m.blog.csdn.net/huangjh2017/article/details/78045299 1. 簡介 在使用libevent函數之前需要分配一個或者多個event_base結構體。每個event_bas

原创 event_base02

出處:http://m.blog.csdn.net/huangjh2017/article/details/78045985 1. 簡介 上一節中,我們學習瞭如何創建一個默認的event_base。但是在實際的應用中,默認的event_b

原创 POSIX Clock

出處:http://www.wowotech.net/basic_tech/tech_discuss/timer_subsystem/posix-clock.html 一、前言 clock是timer的基礎,任何一個timer都需要運作在

原创 檢測是否支持monotonic

int evutil_configure_monotonic_time_(struct evutil_monotonic_timer *base, int flags) {     /* CLOCK_MONOTONIC exists o

原创 爲什麼函數可以返回unique_ptr

從智能指針說起 對高手而言,指針是上天入地的神器;對新手而言,那簡直是災難的源泉。高級語言如Java,C#都自動管理內存,你只管new,不必操心內存釋放問題。Bjarne StroustrupC認爲++加入垃圾回收機制將做不適合系統底