歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 《UNIX網絡編程卷一:套接字聯網API》第三版閱讀筆記

《UNIX網絡編程卷一:套接字聯網API》第三版閱讀筆記

日期:2017/3/1 9:12:06   编辑:Linux編程

粗略的閱讀過《TCP/IP詳解》和《計算機網絡(第五版)》後,開始啃這本《UNIX網絡編程卷一:套接字聯網API》,目前Linux下的編程不算太了解,在閱讀的過程中也會有很多障礙,希望自己堅持下去。

UNIX網絡編程卷1:套接字聯網API(第3版) 中文高清帶完整書簽 PDF 下載見 http://www.linuxidc.com/Linux/2014-04/100222.htm

一.源代碼的下載和編譯

源代碼下載地址:點擊這裡 , 下載下來得到unpv13e.tar.gz文件

編譯步驟:
解壓縮zxvf unpv13e.tar.gz

tar zxvf unpv13e.tar.gz

進入unpv13e文件夾中

cd /unpv13e
./configure//如果權限不夠可以chmod改權限

編譯lib文件

cd lib
make
cd ../libfree
make
cd ../libgai
make 

二.環境搭建

修改unp.b,將#include “../config.h”修改為 #include “config.h”

cd .. //回到主目錄
sudo vim lib/unp.h 

拷貝頭文件到include

sudo cp config.h /usr/local/include
sudo cp lib/unp.h /usr/local/include

拷貝庫文件

sudo cp libunp.a /usr/local/lib

到此,unix網絡編程一書上的代碼都可以編譯了。

三.示例代碼測試

以示例intro/daytimetcpcli.c為例:
編譯daytimetcpcli.c文件

cd ./intro  
gcc daytimetcpcli.c -o daytimetcpcli -lunp  

運行

./daytimetcpcli 127.0.0.1  

測試的時候會出現如下錯誤

connect error:Connection refused

在Ubuntu系統下需要開啟daytime,可通過xinetd來實現對服務連接請求的控制

  • 第一種情況:系統有xinet.d
cd /etc/xinetd.d/
  • 第二種情況:沒有xinetd.d,需要安裝
sudo apt-get install xinetd

然後編輯daytime

vim daytime

將文件中的兩個disable後面的yes改成no,保存退出
重啟xinted.d

service xinetd restart  

再次測試daytimetcpcli例子,

./daytimetcpcli 127.0.0.1

得到正確的結果

01 JUL 2016 15:41:15 CST

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2016-09/135175p2.htm

Copyright © Linux教程網 All Rights Reserved