原创 使用dup/dup2進行文件描述符重定向

當一個進程運行時,會有相應的文件描述符(Linux一切皆文件),一般會有3個默認的文件描述符: 0:與標準輸入關聯 1:與標準輸出關聯 2:與標準錯誤輸出關聯 dup\dup2函數,對文件描述符重定向 close(1)

原创 網絡端口號的類型

什麼是端口? 在網絡技術中,端口(Port)大致有兩種意思:一是物理意義上的端口,比如,ADSL Modem、集線器、交換機、路由器用於連接其他網絡設備的接口,如RJ-45端口、SC端口等等。二是邏輯意義上的端口,一般

原创 TCP的四種定時器

TCP在建立連接後會啓動四個定時器: 重傳計時器:Retransmission Timer 堅持計時器:Persistent Timer 保活計時器:Keeplive Timer 2MSL定時器:Time_Wait Time

原创 路由表的生成及其算法

路由表:在計算機網絡中,路由表或稱路由擇域信息庫(RIB)是一個存儲在路由器或者聯網計算機中的電子表格(文件)或類數據庫。路由表存儲着指向特定網絡地址的路徑(在有些情況下,還記錄有路徑的路由度量值)。路由表中含有網絡周邊的拓撲信息

原创 多線程服務器

基於TCP實現多進程服務器 服務器端: 1、創建套接字: #include <sys/types.h> #include <sys/socket.h> int socket(int domain, i

原创 I/O多路轉接之select

系統提供select函數來實現多路複用輸入/輸出模型。select系統調用是用來讓我們的程序監視多個文件句柄的狀態變化的。程序會停在select這裏等待,直到被監視的文件句柄有一個或多個發生了狀態改變。關於文件句柄,其實就是一個整

原创 NAT(網絡地址轉換)&&代理服務器

網絡地址轉換(NAT,Network Address Translation)屬接入廣域網(WAN)技術,是一種將私有(保留)地址轉化爲合法IP地址的轉換技術,它被廣泛應用於各種類型Internet接入方式和各種類型的網絡中。原因

原创 解析線程池

線程池是一種多線程處理形式,處理過程中將任務添加到隊列,然後在創建線程後自動啓動這些任務。線程池線程都是後臺線程。每個線程都使用默認的堆棧大小,以默認的優先級運行,並處於多線程單元中。如果某個線程在託管代碼中空閒(如正在等待某個事

原创 shell腳本命令代換之‘ ’(反單引號)和$()

命令代換:先完成引號裏或者括號裏的命令行,然後將其結果替換出來,再重組成新的命令行。 Shell中可以用來實現變量代換的命令有兩種,一種是由反引號括起來的一條命令另一種是由$()括起來一條命令,shell先執行這條命令,然後見輸

原创 shell腳本語言實現進度條

代碼如下: i=0 bar='' lable=('|' '/' '-' '\\') index=0 while [ $i -le 100 ] do printf "[%-100s][%d%%][%c]\r" "$bar"

原创 多進程服務器

基於TCP實現多進程服務器 服務器端: 1、創建套接字: #include <sys/types.h> #include <sys/socket.h> int socket(int domain, i

原创 基於TCP的服務器/客戶端通信

簡易TCP服務器/客戶端 服務器端: 1、創建套接字 int socket( int af, int type, int protocol); af:一個地址描述。目前僅支持AF_INET格式,也就是說ARPA Int

原创 shell字符串截取之cut命令

cut命令主要是接受三個定位方法: 第一,字節(bytes),用選項-b 第二,字符(characters),用選項-c 第三,域(fields),用選項-f 一、cut -b 如上圖所示,-b後邊可以設定截取哪

原创 TCP連接建立和釋放過程中狀態機的變化

TCP是面向連接的協議,TCP運輸連接的建立和釋放是每一次面向連接的通信中必不可少的過程。 運輸連接有三個階段:連接建立,數據傳送和連接釋放。 TCP連接採用的是客戶服務器方式。主動發起連接建立請求的應用進程叫客戶,而被動等待

原创 TCP報文首部中URG和PSH的作用

1、URG(緊急指針URGent) 當URG=1時,表明緊急指針字段有效。它告訴系統此報文段中有緊急數據,應儘快傳送(相當於高優先級的數據),而不要按原來的排隊順序來傳送,例如,已經發送了很長的一個程序要在遠地的主機上運