原创 Linux pppd撥號成功,無法訪問網絡解決方法

pppd撥號成功生成虛擬接口時, 需要做的工作就是增加默認路由 route add default gw 10.64.64.64 域名服務器地址更新 vim /etc/resolv.conf 114.114.114.114

原创 Linux 段錯誤調試Segment Fault

Linux下調試方式, 我個人用的主要是兩種: 1. printf 2. coredump 3. review代碼 (在線程過多或是錯誤信息不明顯時) printf 這個大家都懂, 直接打印,一行一行的。 coredump 生成

原创 Linux網絡中的橋 (Bridge)

橋簡介 橋,從字面來講就是在一條河流上面建造一條路,對,就是這樣,甭管是多大多長跨江還是跨海,它都是起到連接兩岸的作用。 在計算機的網絡世界中也存在這種連接的兩個網絡的設備,這也是一種橋,虛擬的橋。 網絡中的橋 OK, 迴歸主題,

原创 工作記錄- 移植BGP md5支持到linux 2.6.16

需求 客戶需要BGP協議支持MD5加密這種安全性,所以需要實現IPv6兩種協議的支持,然而標準內核在2.6.20才支持這個功能,所以,我們的活兒來了。 移植 參考Linux-2.6.20 將這個setsocketopt的操作抽象爲

原创 工作記錄 - Linux 的socket TCP keep-alive功能在特定情況下失效的原因

問題 TCP socket keep-alive 失敗,導致正在進行的業務失敗。 分析 根據數據報文發現,每次tcp ack keep-alive數據報文請求發送後如果發送別的數據,就會出現socket超時, 判斷是內核處理tcp

原创 Qemu 使用記錄

簡介 一直想研究qemu很久了,都是淺嘗輒止,看一半的文檔就不搞了,要下載那麼多的鏡像很討厭的。最近覺得這兩年實在是沒什麼長進確實應該深入看看了。 命令行 先了解這個命令怎麼用吧,首先下載個TinyCore-current.iso

原创 什麼是Linux內核中的VRF?

無意中發現了一個巨牛的人工智能教程,忍不住分享一下給大家。教程不僅是零基礎,通俗易懂,而且非常風趣幽默,像看小說一樣!覺得太牛了,所以分享給大家。點 這裏可以跳轉到教程。 VRF 簡單概念 虛擬路由轉發(Virtual Routi

原创 自動下載Twitter視頻圖片golang實現

Github地址 Github: https://github.com/gohiweeds/twitterdownloader.git 功能 支持Socks5代理配置 國內的:支持設置SOCK5 代理,下載Twitter視頻圖片

原创 IPFS 是什麼?

IPFS 全稱 IPFS 英文全稱: InterPlanetary File System , 翻譯: 星際文件系統 技術基礎 基於Git, BitTorrent, Kademlia, SFS 和Web, 他就像是一羣bittorrent

原创 protobuf-c應用樣例

源碼 源碼地址: https://github.com/protobuf-c/protobuf-c.git 編譯 ./autogen.sh && ./configure && make && make install 應用 根據協議格式生

原创 大小端再測

以前就對這寫概念理解的不夠透徹, 每次都是死記硬背大小端的概念, 現在其實也記得不是很清晰。 現在終於是心理稍微有點普了, 0x1234, 低位是0x34, 高位是0x12. short是兩個字節。 char 是一個字節。

原创 git push: error 401 Unauthorized while accessing

git push origin master error: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.ne

原创 go-workerpool 支持每分鐘百萬併發的抽象原型

使用 Golang 實現了一個簡單的消費者模式, 主要解決每分鐘百萬請求的問題。 基本原理:建立固定的工作線程去緩衝池中取數據處理。以此來控制固定時間內處理的請求數 源碼地址 https://github.com/qianguozheng

原创 字節數int, long, double

和機器字長及編譯器有關係: 所以,int,long int,short int的寬度都可能隨編譯器而異。但有幾條鐵定的原則(ANSI/ISO制訂的): 1 sizeof(short int)<=sizeof(int) 2 size

原创 Go語言字符串反轉

實現字符串翻轉 也就是將“abcd” 轉換爲 “dcba” func reverse(str string) string { rs := []rune(str) len := len(rs) var tt []r