UNP學習筆記(第一章 簡介)

2021-07-04 13:01:29 字數 2000 閱讀 7885

環境搭建

2.進入目錄執行

./configure

cd lib //進入lib目錄

make //執行make命令

3.將生成的libunp.a靜態庫複製到/usr/lib/和/usr/lib64/中  

cd ..   //返回unpv13e目錄

sudo cp libunp.a /usr/lib

sudo cp libunp.a /usr/lib64

4.修改unp.h並將其和config.h拷貝到/usr/include中,為了以後include方便

vi lib/unp.h   

//將unp.h中#include "../config.h"修改為#include "config.h"

sudo cp lib/unp.h /usr/include  

sudo cp config.h /usr/include

5.編譯源**

cd ./intro  

gcc -o daytimetcpcli daytimetcpcli.c -lunp

跟普通的編譯不一樣的是要在最後加上剛才那個鏈結庫,-l引數加上剛才那個libunp.a去掉lib和後面的.a。最後得到引數-lunp。

下面是socket網路程式設計的例項,**將在後面章節進行詳細說明

乙個簡單的時間獲取客戶程式

1 #include    "

unp.h"2

3int

4 main(int argc, char **argv)530

if (n < 0

)31 err_sys("

read error");

3233 exit(0

);34 }

view code

上面是tcp當前時間查詢客戶程式的乙個實現。該客戶與伺服器建立乙個tcp連線後,伺服器以直觀可讀格式簡單地送回當前時間和日期。

協議無關性

上面程式與ipv4協議相關。修改該程式,讓它能夠在ipv6執行

1 #include    "

unp.h"2

3int

4 main(int argc, char **argv)530

if (n < 0

)31 err_sys("

read error");

3233 exit(0

);34 }

view code

包裹函式

本書例子通過包裹函式來進行錯誤處理:約定包裹函式名是實際函式名的首字母大寫形式,例如socket函式是socket的包裹函式,下面**將演示這個包裹函式

1

int2 socket(int family, int type, int

protocol)

3

view code

乙個簡單的時間獲取伺服器程式

1 #include    "

unp.h

"2 #include 3

4int

5 main(int argc, char **argv)

632 }

view code

測試程式

使用root使用者使伺服器程式從後台執行

執行第乙個客戶端程式

127.0.0.1是環迴位址。本例子中客戶端程式連線到伺服器程式,伺服器程式將時間跟日期傳送給客戶端,然後客戶端將它列印到終端中。

UNP卷1 第一章(簡介)

1.時間獲取程式 服務端 srv.c include include include include include include include define sa struct sockaddr define maxline 1024 int main void if waitpid pid,...

第一章 簡介

執行緒的優勢 發揮多處理器的強大能力 由於基本的排程單位是執行緒,因此如果在程式中只有乙個執行緒,那麼最多同時只能在乙個處理器上執行。在雙處理器系統上,單執行緒的程式只能使用一半的cpu資源,而在擁有100個處理器的系統上,將有99 的資源無法使用。在gui應用,執行緒可以提高使用者介面的響應靈敏度...

第一章(簡介)

技術手段 包含運用虛擬專用網路 virtual private network vpn 加密協議,入侵檢測系統 intrusion detection system ids 入侵防禦系統 instrusion prevention system ips 訪問控制列表 access control l...