Unix網路編程之環境搭建

來源:互聯網
上載者:User

標籤:unix網路編程   環境搭建   

環境搭建

 

在嘗試UNP書上的例子時,會因為找不到"unp.h"等問題無法編譯成功,因此在學習之前需要先搭建好編譯環境。

 

 

步驟

 

<1>下載  UNIX網路編程原始碼unpv13e.tar.gz

下載連結  http://download.csdn.net/detail/ymsdu2004/4906181

 

<2>解壓 進入該目錄後執行

./configure 

再進入lib目錄下 cd lib       執行 make

此時會在上層目錄(就是剛才有configure那個目錄)產生libunp.a檔案

 

<3>複製libunp.a到 /usr/lib下  (以後gcc編譯就可以用 -lunp來調用該庫檔案)

 

<4>最後在configure目錄下找到config.h  在lib目錄下找到unp.h 複製到你寫代碼的某個檔案下即可

把unp.h中 #include "../config.h"改成#include "config.h"

 

 

測試

 

用戶端程式

 

#include"unp.h"intmain(int argc, char **argv){intsockfd, n;charrecvline[MAXLINE + 1];struct sockaddr_inservaddr;if (argc != 2)err_quit("usage: a.out <IPaddress>");if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)err_sys("socket error");bzero(&servaddr, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_port   = htons(13);/* daytime server */if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)err_quit("inet_pton error for %s", argv[1]);if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)err_sys("connect error");while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {recvline[n] = 0;/* null terminate */if (fputs(recvline, stdout) == EOF)err_sys("fputs error");}if (n < 0)err_sys("read error");exit(0);}


 

伺服器程式

 

#include"unp.h"#include<time.h>intmain(int argc, char **argv){intlistenfd, connfd;struct sockaddr_inservaddr;charbuff[MAXLINE];time_tticks;listenfd = Socket(AF_INET, SOCK_STREAM, 0);bzero(&servaddr, sizeof(servaddr));servaddr.sin_family      = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port        = htons(13);/* daytime server */Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));Listen(listenfd, LISTENQ);for ( ; ; ) {connfd = Accept(listenfd, (SA *) NULL, NULL);        ticks = time(NULL);        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));        Write(connfd, buff, strlen(buff));Close(connfd);}}


 

此時目錄下有4個檔案

 

 

編譯器

 

 

查看自己的ip(因為用戶端串連伺服器需要知道伺服器,也就是你自己電腦的ip)

 

我測試時電腦的IP為10.206.27.149

 

 

測試結果

 

先執行伺服器程式

此時,伺服器處於等待 監聽狀態

 

再執行用戶端程式

此時返回了我電腦原生時間,實現了測試。這時我們的環境已經搭建好了。

 

 

 

 

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.