《unix網路程式設計卷1》一上來就給了乙個例子,新手不容易看懂,估計作者也沒有打算讓人看懂,作了詳盡的解釋。新手都想執行這個程式,我也是。
首先,給的程式都是在unix下執行的。這裡有全書**。
我的環境是vmware workstation 12.5.0
+ubuntu 16.04 lts
,已經裝了gcc。
tsc@tsc
:~/bin/unpv13e/unpv13e
$ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
......
tsc@tsc
:~/bin/unpv13e/unpv13e
$ cd lib
tsc@tsc
:~/bin/unpv13e/unpv13e/lib
$ make
...tsc@tsc
:~/bin/unpv13e/unpv13e/lib
$ cd ../libfree
tsc@tsc
:~/bin/unpv13e/unpv13e/libfree
$ make
gcc -i../lib -g -o2 -d_reentrant -wall -c -o inet_ntop.o inet_ntop.c
inet_ntop.c:
in function 『inet_ntop』:
inet_ntop.c:60:
9:error: argument 『size』 doesn』t match prototype
size_t size;
^in file included from inet_ntop.c:27:
0:/usr/include/arpa/inet.h:64:
20:error: prototype declaration
extern const char *inet_ntop (int __af, const void *__restrict __cp,
^: recipe for target 'inet_ntop.o' failed
make: *** [inet_ntop.o] error
1tsc@tsc
:~/bin/unpv13e/unpv13e/libfree
$ cd ../libroute
tsc@tsc
:~/bin/unpv13e/unpv13e/libroute
$ make
gcc -i../lib -g -o2 -d_reentrant -wall -c -o get_rtaddrs.o get_rtaddrs.c
in file included from get_rtaddrs.c:1:
0:unproute.h:3:
45: fatal error: net/if_dl.h: 沒有那個檔案或目錄
compilation terminated.
: recipe for target 'get_rtaddrs.o' failed
make: *** [get_rtaddrs.o] error
1tsc@tsc
:~/bin/unpv13e/unpv13e/libroute
$ cd ../libxti
bash:
cd: ../libxti: 沒有那個檔案或目錄
tsc@tsc
:~/bin/unpv13e/unpv13e/libroute
$ cd ../intro
tsc@tsc
:~/bin/unpv13e/unpv13e/intro
$ make daytimetcpcli
tsc@tsc
:~/bin/unpv13e/unpv13e/intro
$ ./daytimetcpcli 127.0.0.1
connect error:
connection refused
可以看到提示了錯誤connect error: connection refused
,這裡有討論這個錯誤的。接下來:
tsc@tsc
:~/bin/unpv13e/unpv13e/intro
$ make daytimetcpsrv
gcc -i../lib -g -o2 -d_reentrant -wall -c -o daytimetcpsrv.o daytimetcpsrv.c
gcc -i../lib -g -o2 -d_reentrant -wall -o daytimetcpsrv daytimetcpsrv.o ../libunp.a -lpthread
tsc@tsc
:~/bin/unpv13e/unpv13e/intro
$ sudo ./daytimetcpsrv
參考:make的作用
tsc@tsc
:~/bin/unpv13e/unpv13e/intro
$ ./daytimetcpcli 127.0.0.1
frimar320
:37:48
2017
可以看到,給出了系統當前時間,第一例執行成功。 Unix 網路程式設計卷1
伺服器被動開啟 passive open socket bind listen。客戶端通過socket connect主動開啟 active open accept和connect是阻塞的 把目標位元組串指定數目的位元組置為c void memset void dest,int c,size t l...
UNIX網路程式設計卷1 第1章 簡介
要編寫通過計算機網路通訊的程式,首先要確定這些程式相互通訊所用的協議。一般認為web伺服器程式是乙個長時間執行的程式 守護程式,daemon 它只在響應來自網路的請求時才傳送網路訊息。協議的另一端是web客戶程式,如某種瀏覽器,與伺服器程序的通訊總是由客戶程序發起。在設計網路應用時,確定總是由客戶發...
UNIX網路程式設計 UNP 卷2 第一章
今天開始拜讀unp這部神作了 第一章主要是簡介內容,包括對經典ipc和同步機制的描述。雖然卷2主要是講解ipc的,但這個ipc包括了平常所說的程序間通訊和同步。pipe fifo message queue mutex locks semaphores shared memory rpc socke...