電子科技大學(xué)計算機(jī)網(wǎng)絡(luò)編程實(shí)驗(yàn)報告_第1頁
電子科技大學(xué)計算機(jī)網(wǎng)絡(luò)編程實(shí)驗(yàn)報告_第2頁
電子科技大學(xué)計算機(jī)網(wǎng)絡(luò)編程實(shí)驗(yàn)報告_第3頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)報告課程名稱:計算機(jī)網(wǎng)絡(luò)編程學(xué) 院:計算機(jī)科學(xué)與工程學(xué)院 專 業(yè):計算機(jī)科學(xué)與技術(shù) 指導(dǎo)教師:學(xué)生:田茂學(xué) 號:04實(shí)驗(yàn)成績: 日 期:2021年行月電子科技大學(xué)計算機(jī)學(xué)院實(shí)驗(yàn)中心電子科技大學(xué)實(shí)驗(yàn)報告一、實(shí)驗(yàn)四:實(shí)驗(yàn)工程的名稱:針對Time效勞的UDP效勞器軟件的實(shí)現(xiàn)二、實(shí)驗(yàn)室名稱:主樓A2-412實(shí)驗(yàn)時間:第十三周周日三、實(shí)驗(yàn)?zāi)康模?掌握UDP效勞器端軟件的工作原理。2. 掌握針對TIME效勞的UDP效勞器端軟件的編程步驟和編程實(shí)現(xiàn),并最終 形成可執(zhí)行代碼。四、實(shí)驗(yàn)原理:TCP/IP定義一種效勞,它允許一臺機(jī)器從另外一臺機(jī)器獲得當(dāng)前的時間和日 期,該效勞正式命名為惡TIMEo效勞器只要收

2、到請求,就從本地的操作系統(tǒng)中 獲取當(dāng)前的日期和時間,使用標(biāo)準(zhǔn)的格式編碼該信息,然后在響應(yīng)中發(fā)給客戶。效勞器端的過程可以分為以下幾個步驟:初始化套接字;創(chuàng)立套接字,需 要兩個套接字及客戶端和效勞器端的套接字;綁定效勞器,該函數(shù)用于綁定效勞 器套接字;監(jiān)聽效勞器,該函數(shù)用于監(jiān)聽效勞器;接收客戶端請求返回值為客 戶端的套接字,參數(shù)為效勞器套接字;接收客戶端數(shù)據(jù);關(guān)閉套接字。五、實(shí)驗(yàn)容:本實(shí)驗(yàn)主要完成針對TIME效勞的UDP效勞器軟件的實(shí)現(xiàn),要求該效勞器向客 戶提供TIME效勞。實(shí)驗(yàn)容包括:1、編程環(huán)境的準(zhǔn)備,要求在Linux操作系統(tǒng)下安裝GCC或CC編譯器。2、利用編輯器編寫客戶軟件代碼(編輯器自選

3、,如文本編輯器,或Linux的Vi等)3、利用GCC編譯器調(diào)試并形成可執(zhí)行代碼4、運(yùn)行效勞器程序,驗(yàn)證功能實(shí)現(xiàn)。5、在客戶機(jī)上運(yùn)行TIME客戶端軟件,向效勞器請求TIME效勞。姓名:田茂學(xué)號;六、實(shí)驗(yàn)器材設(shè)備、元器件:Ubtuntu1404操作系統(tǒng);gcc編譯工具;ScureCRT I具七、實(shí)驗(yàn)步驟:1、在Windows機(jī)上安裝Linux環(huán)境,在Vmware下安裝Ubuntu,利用編輯器 編寫源程序,以下為vi例如。2、利用編輯器編寫源程序File Edit View Options Transfer Script Tools Window HelpSQS3?SEriterh05t <A

4、lt+R> '7 唱器忌洛白囹逐丫 ©貝一229 (2) X<1File Edit View Options Transfer Script Tools Window Help&需門釦蟲!Enter ho5t MZd力囹靄t“229 (2) X<welcome to ubuntu 14.04 LTS (GNU/linux 3 13.024gRriEiu x86 64j口 Documentation: https :/halpuburttu uom/636 packages can be update

5、d.249 updates are security updatesLast "login: Sun Nov 8 23 :18:53 2 015 from 192.168. 220.1 11anmaowirtual-machine $ |3 源代碼如下:include <stdio.h>include <stdlib.h>#inelude <unistdh>#inelude <string.h>#inelude <stdargh>#inelude <sys/typesh>#inelude <sys/sock

6、eth>#inelude <netinet/in.h>#inelude <arpa/ineth>#inelude <netdb.h>#inelude <errno.h>define UNIXEPOCH 2208988800ULextern int errno;unsigned short portbase = 0;int errexit(const char *format,.);int passivesock(const char *service, const char transport, int qlen);int passiveU

7、DP(const char Service);int main(int argc, char *argv)char *service= "time"struct sockaddrjn fsin;char buf1;int sock;time_t now;unsigned int alen;switch (argc)case 1:break;case 2:service 二 argv1;break;default:errexit(Husage: UDPtimed portn");sock=passiveUDP(sernce);v/hile(1)alen 二 size

8、of(fsin);if(recvfrom(sock,buf,sizeof(buf),Obstruct sockaddr *)&fsin,&alen)<0) errexit(Hrecvfrom: %snM,strerror(errno);(void)time(ftnov/);nov=htonl(unsigned Iong)(now+UNIXEPOCH);(void)sendto(sock,(char*)&nov/,sizeof(now),0,(struct sockaddr *)&fsin,sizeof(fsin); int errex讓(const cha

9、rva_list arg;va_start(arg, format);4printf (stderr; format,arg);va_end(arg);exit(1);int passivesock(const char Service, const char *transport, int qlen)struct servent*pse;struct protoent *ppe;struct sockaddrjn sin;int s, type;memset(ftsin, 0, sizeof(sin);sin.sin= AFJNET;sin.sin_addr.s_addr = INADDR_

10、ANY;if ( pse = getser/byname(service, transport)sin.sin_port = htons(ntohs(unsigned short)pse->s_port)+ portbase); elseif (sin.sin_port=htons(unsigned short)atoi(service)+portbase) = 0) errexitC'can't create passive service %d n",sin.sin_port);if ( (ppe = getprotobyname(transport) =

11、0)errexitC'can't get "%su protocol entrynu, transport);if (strcmp(transport, "udp") = 0)type = SOCK_DGRAM;elsetype = SOCK.STREAM;s = socket(PFJNET, type, ppe->p_proto);if (s < 0)errexitfan't create socket: %snM, strerror(errno);if (bind(s, (struct sockaddr J&sin,

12、 sizeof(sin) < 0)errexitfan't bind to %s port: %snH, service,strerror(errno);if (type = SOCK-STREAM && listen® qlen) < 0)errexitfan't listen on %s port: %snM, service,strerror(errno);return s;int passiveUDP(const char *service)return passivesock(serviceudp”,0);4.編譯并調(diào)試程序切換到

13、源代碼所在的目錄,使用GCC指令進(jìn)展編譯$ GCC o timers time_s.c可修編. ® 整 tianmao(a>virtual-machine: -/workplacetiamachine; $ cd /workplace tta nmaov'tt:iJElniachin:/wokplace$ echoic echoic.c echo_c.c- echoes ttanmaovtrtual nachlne:-/workplaces ttanmaovtrtual-machine:-/workplaces gcc: error: UDPttne.cd: No su

14、ch file gcc: fatal error: no input files compilation terminated. ttanmaovtrtual machine:-/workplace tta nneovtt:iJ3ld8chine:/vvokplaice$ echoic echoic.c_ttanmaovirtualmachine:-/workplaces 0Isecho_sc echoes.u UDPttme.c UDPtimedc gcc -o UDPtime UDPtime.cgcc -o UDPtimed UDPtine.cdor directorygcc -o UDP

15、timed UDPtimed.c Isecho_c. c- echo_s.cz UDPtine UDPtimed echo s echo s.c- UDPtime.c UDPtimed.c八、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析:在源程序所在的目錄鍵A./time_s,同時鍵A./time_c命令,得到下面的運(yùn)行結(jié)果:® 勺 tianmaovirtual-machine: -/workplacettanmaovirmachine:$ pwd/home/ttanmaottann30/lt:u«alm3c:hinQ:$ cd /workplacetianmaovirtualiTidc:hinei

16、;/wQkpl0c:e$ Isechoicecho_c.c echoes.cUDPtineUDPtimedecho c.c echo secho s.c UDPttme.c UDPtimed.cMBStianm3Qvlt:u3liTiec:hinei;/wokplac$ /UDPtimedcdrVt bind to time port: Permission dentedttanni30vlt:u3lmac:hinQ::/wokplac$ sudo . /UDPtimed sudo password for tianmeQ; 0 Q tianmao(3)virtuabmachine: -/workplacetianmaovlrtu3lnec:hine:$ pwd/home/tta nrnaottannBOvltualmachine:$

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論