《UNIX網路編程 卷1》之"學習環境搭建"(CentOS 7)

來源:互聯網
上載者:User

標籤:

  《UNIX網路編程 卷1》的源碼可以從www.unpbook.com下載得到。解壓之後的目錄為unpv13e。

  1. 編譯

  進入unpv13e目錄,按如下步驟編譯:

 1 ./configure  2  3 cd lib  4 make // 可能遇到問題:redefinition of ‘struct in_pktinfo’ 5  6 cd ../libfree  7 make  8    9 cd ../libroute10 make //這一步可能會出錯,可忽略,只是表示你的系統不支援 4.4BSD,並不影響對該書的學習11   12 cd ../libgai 13 make 

  針對上邊的問題‘redefinition of ‘struct in_pktinfo’,我們需要將unpv13e/key/unp.h及unpv13e/sctp/unp.h中的“struct in_pktinfo”結構體聲明注釋掉,因為它已經被包含在標準標頭檔bits/in.h中了。修改之後需要重新編譯 。

  以上步驟會產生一個靜態庫libunp.a。

  2. 將產生的 libunp.a 靜態庫複製到/usr/lib/ 和 /usr/lib64/ 中
1 cd ..   //回到 unpv13e 目錄 2 sudo cp libunp.a /usr/lib 3 sudo cp libunp.a /usr/lib64 
  3. 修改 unpv13e/lib/unp.h 並將其和 config.h 拷貝到 /usr/include 中
1 vim lib/unp.h //將 unp.h 中#include "../config.h"修改為#include "config.h" 2 sudo cp lib/unp.h /usr/include 3 sudo cp config.h /usr/include 
  4. 運行樣本(unpv13e/intro/daytimetcpcli.c)

  1)編譯時間必須加上靜態連結庫:-l 參數加上 libunp.a  去掉lib和後面的.a。最後得到參數-lunp

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

  2)測試上面產生的可執行檔擷取本機當前日期:

1 ./daytimetcpcli 127.0.0.1

  在進行測試時會出現以下錯誤:

1 connect error:Connection refused

  3)該錯誤表示 daytime 服務程式沒開,可通過  xinetd來實現對服務串連請求的控制。以下通過 xinetd 開啟 daytime 服務程式。

1 sudo cd /etc/xinetd.d/2 sudo vim daytime

  如果xinetd.d檔案夾是空的,則需要先安裝xinetd服務:

1 sudo yum install xinetd.x86_64

  將 daytime-stream 和 daytime-dgram 兩個檔案中的 disable = yes 修改成 disable = no,並儲存退出,然後重啟 xinetd:

1 service xinetd restart

  4)再次測試該例子,能成功顯示本機時間:

1 ./daytimetcpcli 127.0.0.12 22 JUN 2015 15:20:03 CST

 

  參考博文:

  《網路編程》關於 UNIX網路編程 卷1 的 unp.h 和源碼編譯問題

  Unix NetWork Programming——環境搭建(解決unp.h等源碼編譯問題)

  CentOS開啟daytime伺服器

 

《UNIX網路編程 卷1》之"學習環境搭建"(CentOS 7)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.