原创 PGM可靠組播協議

PGM, Pragmatic General Multicast(RFC 3208)。基於IP層的傳輸層協議,與TCP/UDP同級。 開源工程OpenPGM,https://www.developerfusion.com/project/

原创 C++11 字符串分割

Using explode function as it used in PHP programming. The code above just a simple function, yet well-tested with vario

原创 C語言 冒泡排序和二分查找

#include <unistd.h> #include <stdio.h> int a[] = {11,2,3,44,58,16,7,8,9,10}; //冒泡排序 int order_main() { int

原创 Nginx的負載均衡原理

http://www.jointforce.com/jfperiodical/article/3810

原创 socket新特性之SO_REUSEPORT

翻譯原文:https://lwn.net/Articles/542629/   Linux Kernel 3.9中合併了TCP/UDP的SO_REUSEPORT特性。 允許多個進程(或者線程)綁定同一個端口:    int sf

原创 巧用alias命令 - 簡化開發工作中的重複勞動

[xiongli@10-13-6-227 ~]$ vim alias alias l='tail -f /jchang/log/jc.log' alias p='ps aux | grep jchangd' alias k='killal

原创 TCP粘包解決方案 - 環形緩衝區

粘包產生原因: 先說TCP:由於TCP協議本身的機制(面向連接的可靠地協議-三次握手機制)客戶端與服務器會維持一個連接(Channel),數據在連接不斷開的情況下,可以持續不斷地將多個數據包發往服務器,但是如果發送的網絡數據包太小,那麼

原创 Linux下定位內存泄漏

查看程序內存空間兩種方法 一、查看/proc/{pid}/maps文件 #cat /proc/568/maps 00008000-0036a000 r-xp 00000000 00:0e 236        /home/hik/hico

原创 man 5 proc

# man 5 proc /proc/sys/fs/file-max               This  file  defines  a  system-wide  limit on the number of open      

原创 sigsetjmp函數

相關函數:longjmp, siglongjmp, setjmp 表頭文件:#include <setjmp.h> 函數定義:int sigsetjmp(sigjmp_buf env, int savesigs) 函數說明:sigsetj

原创 TCP/IP分片

爲什麼分片? 瞭解幾個參數: 1. MTU (1)以太網和802.3對數據幀的長度都有一個限制,其最大值分別是1500和1492個字節。鏈路層的這個特性稱作MTU。不同類型的網絡大多數都有一個上限。如果IP層有一個數據要傳,且數據的長度比

原创 幾種IO模型

轉自:http://blog.csdn.net/historyasamirror/article/details/5778378 當你發現自己最受歡迎的一篇blog其實大錯特錯時,這絕對不是一件讓人愉悅的事。 《 IO - 同步,異步,

原创 多進程和多線程比較

通過對比說明: 對比維度 多進程 多線程 優勢 內存、CPU 系統需要分配額外的資源。上下文切換複雜,CPU利用率低 較小的開銷,CPU利用率高 線程佔優 數據共享 多進程數據都是相互獨立的,需要通過IPC共享數據(如共享內存)。 多線程

原创 高性能服務器架構(High-performace Server Architecture)

引言 本文將與你分享我多年來在服務器開發方面的一些經驗。對於這裏所說的服務器,更精確的定義應該是每秒處理大量離散消息或者請求的服務程序,網絡服務器更符合這種情況,但並非所有的網絡程序都是嚴格意義上的服務器。使用“高性能請求處理程序”是一

原创 linux gdb調試程序 - 信號

//設置信號處理動作 (gdb) handle 15 nostop print pass Signal        Stop      Print   Pass to program Description SIGTERM