UNP卷1 第一章(簡介)

2021-06-25 11:00:05 字數 1520 閱讀 2364

1. 時間獲取程式

服務端:srv.c

#include #include #include #include #include #include #include #define sa struct sockaddr

#define maxline 1024

int main( void )

if ( waitpid(pid, null,0 ) != pid )

close( connfd );

} return 0;

}

客戶端:cli.c

#include #include #include #include #include #define sa struct sockaddr

#define maxline 1024

int main( int argc, char **argv )

if ( ( sockfd = socket( af_inet, sock_stream, 0 ) ) < 0 )

bzero( &servaddr, sizeof( servaddr ) );

servaddr.sin_family = af_inet;

servaddr.sin_port = htons( 7777 );

if ( inet_pton( af_inet, argv[ 1 ], &servaddr.sin_addr ) <= 0 )

if ( connect( sockfd, ( sa * )&servaddr, sizeof( servaddr ) ) < 0 )

while ( ( n = read( sockfd, recvline, maxline )) > 0)

} if (n < 0)

exit(0);

}

執行結果如下:

服務端:

root@thinkpad-t430i:/home/leichaojian# lsof -i:7777

root@thinkpad-t430i:/home/leichaojian# cc srv.c

root@thinkpad-t430i:/home/leichaojian# ./a.out

客戶端:

leichaojian@thinkpad-t430i:~$ ./a.out 127.0.0.1

fri sep 5 00:14:14 2014

這裡lsof -i:7777是必要的,否則埠會被占用,導致connect失敗!

對於習題1.5,修改**如下:

for ( count = 0; count < strlen( buff ); count++ )

write( connfd, &buff[ count ], 1 );

但是客戶端依舊只返回1,即雖然服務端是分字元write,但實際上還是一次性的傳送所有的資料。

UNP(卷2 程序間通訊) 第一章 簡介

ipc是程序間通訊 interprocess communication 的簡稱。訊息傳遞 message passing 同步 synchronization 程序間共享資訊的三種方式 1 兩個程序共享存留與檔案系統中某個檔案上的某些資訊。穿越核心 2 兩個程序共享駐留在核心中的某些資訊。3 兩個...

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

環境搭建 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...

UNIX網路程式設計 UNP 卷2 第一章

今天開始拜讀unp這部神作了 第一章主要是簡介內容,包括對經典ipc和同步機制的描述。雖然卷2主要是講解ipc的,但這個ipc包括了平常所說的程序間通訊和同步。pipe fifo message queue mutex locks semaphores shared memory rpc socke...