原创 UNIX網絡編程總結

作爲一名現代開發人員,在日常的開發中不可避免的會接觸到網絡編程。網絡編程已經成爲現代開發人員不可或缺的基本素養,網絡編程本身又繞不開socket與tcp。雖然各個語言都提供了豐富的網絡庫,開發人員直接使用socket api的機會

原创 golang和rust嵌入式開發初探

本文簡單的介紹了golang和rust語言在openwrt系統、mips架構下的交叉編譯。 環境 主機 系統 內核 架構 host主機 Centos 7.2 linux 3.10.0-327 x86_64 tar

原创 golang中的dns問題

問題描述 一個golang寫的客戶端程序,向雲端發起一個http 請求,報錯: Get http://XXXXXXX: net/http: request canceled while waiting for connection (

原创 bash配置

/etc/bashrc PS1='tty:[\e[1;36m\l\e[0m] jobs:[\e[1;36m\j\e[0m] cwd:[\e[1;36m\w\e[0m]\n`date +%H:%M` [\u@`hostname`]$ '

原创 Linux下的SO_REUSEADDR

《TCP/IP詳解 卷1:協議》第18章 TCP的建立與終止 P185 原文:Linux下SO_REUSEADDR於TCP/IPv1中的差異   TCP/IPv1 老矣! Richard 的去世, 使得這部經典一直無人更新, 雖然書中對I

原创 測試哪一個HashStr函數最適合你

背景 string hash函數在分佈式設計中使用非常的頻繁。比如數據庫分表,需要根據數據庫的主鍵進行hash,比如負載均衡,需要根據ip或url或uri進行hash。但是根據不同的給定的鍵,哪種hashStr函數的衝突率最低,執行速度最

原创 linux ping廣播地址無迴應

看《TCP/IP詳解 卷1:協議》第12章 廣播和多播 時,說ping可以直接ping廣播地址。 局域網發現功能。 具體就是:發現所有連接到路由器的設備。就是發現所有局域網主機。並列出主機名,mac,ip等。 當時網上搜了好

原创 gdb沒有調試信息

which has no line number information. No symbol “i” in current context. 這些提示信息都是沒有調試符號。 中文站點搜了一堆,全是膚淺的忘加-g參數的問題。

原创 Bash/Prompt customization

#!/bin/bash function pprom2 { ret_num=$? # regular colors local K="\[\033[0;30m\]" # black local R="\[\033[0;31m\]"

原创 《C專家編程》筆記——怎樣在函數庫中查找一個符號

在該小啓發中提到,如果ld提示undefined symbol,可以實行一段shell暴力查找。 可是在我的linux系統中該shell卻無法執行。 原書中的shell: cd /usr/lib foreach i (lib?*)

原创 TCP與Socket狀態轉換圖

原圖 正常開啓 初始時,Client 和 Server 的TCP狀態都爲CLOSED。 S 端首先socket、bind、listen。listen後 S tcp狀態會變成LISTEN,執行 被動打開。 S 端調用 accept ,

原创 speedtest-lite 筆記

源碼地址 : git #!/bin/sh PROGRAMNAME="Speedtest-Lite" VERSION="0.1.0" AGENT="$PROGRAMNAME/$VERSION" SPEEDTEST_CONFIG="htt

原创 .vimrc

set nocompatible " be iMproved, required filetype off " required " set the runtime path

原创 UNIX環境高級編程——學習筆記(1)

10.15節的實例程序 對應書中的源碼爲~/apue.3e/signals/mask.c 自己編譯出的程序和書中的輸出怎麼也對應不上. 編譯: $ cd ~/apue.3e/signals $ gcc -o mask_d ma

原创 SecureCRT 跳板機自動登陸腳本

# $language = "Python" # $interface = "1.0" import random SCRIPT_TAB = crt.GetScriptTab() SCRIPT_TAB.Screen.Synchrono