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...