-Linux程序設計實驗報告_第1頁
-Linux程序設計實驗報告_第2頁
-Linux程序設計實驗報告_第3頁
-Linux程序設計實驗報告_第4頁
-Linux程序設計實驗報告_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Word資料實驗報告課程名稱: Linux程序設計學 院:信息科學與工程學院專業(yè): 13計算機 班級: 2013-1姓名: 學號:2016年 6月 28 日山東科技大學教務處制實驗報告組別姓名同組實驗者實驗項目名稱實驗一熟悉linux命令實驗日期第12周周四9,10 節(jié)教師評語實驗成績指導教師廉文娟.登錄和退出Linux系統(tǒng)用戶登錄系統(tǒng)時為了使系統(tǒng)能夠識別自己必須輸入用戶名和密碼經(jīng)系統(tǒng)驗證無后方能進入系統(tǒng)。用戶登錄分兩步進行,第一步輸入用戶的登錄名,系統(tǒng)根據(jù)該登錄名來識別用戶,第二步輸入用戶的口令,該口令是用戶自己選擇的一個字符串對其他用戶是保密的,是在登錄時系統(tǒng)用來辨別真假用戶的關鍵字。必須

2、輸入用戶的賬號,分為1) root 系統(tǒng)管理員賬號,該賬號可以進行任意操作。2)普通用戶一一擁有一定的權限.其他命令三、實驗容常用操作命令。1、在Linux系統(tǒng)中打開終端,利用快捷鍵 ctrl+alt+T ,打開,結(jié)果如下:g ua axcyKsI a b-Lc nc vc:=ju?st-29pa a犬恥 s lab - Len ovo: -S |2、退出:不論是root用戶還是普通用戶,需要退出系統(tǒng),在shell提示符下,鍵入exit命令即可。3、關機與重啟:Linux中提供了命令shutdown,可以安全地關機或重啟系統(tǒng),該命令只能是超級用戶可以使用,命令格式:shutdown 選項北時間

3、警告信息其中警告信息是向其他用戶發(fā)布的信息,時間指定關機或是重啟的時間,選項的意義如下:h 關機,關機前關閉相關進程,執(zhí)行fsck命令(文件系統(tǒng)的一致性檢查)r系統(tǒng)重新啟動f快速關機,系統(tǒng)關機前不執(zhí)行fsck命令n 快速關機,系統(tǒng)關機前不執(zhí)行init命令k不關機,只是將警告信息向其他用戶發(fā)布c 終止執(zhí)行正在運行的shutdown命令舉例:.系統(tǒng)立即關機shutdown -h now.兩分鐘后重啟系統(tǒng),發(fā)布信息System will be down in 2 minutes !給其他終端用戶。Shutdown -r +2 System will be down in 2 minutes ! ”除

4、了可以使用shutdown命令來關機和重啟系統(tǒng)外,Linux還有專門用于關機和重啟系統(tǒng)的命令 poweroff和reboot , reboot用于重啟系統(tǒng)(相當于shutdown -r now),命令 poweroff 則用于關機(相當于 shutdown -h now)4、添加新用戶、修改文件屬性.添加新用戶(在root下,按默認值回答)adduser 用戶名;如adduser s2001 ;以新用戶登錄到系統(tǒng).修改用戶口令passwd用戶名.控制文件屬性使用ls 4查看文件屬性改變用戶的所有權:chown用戶名 文件名改變文件權限:chmod g+w 文件名;chmod o-r文件名或使用

5、數(shù)字方式修改:如 chmod 644文件名;chmod 755文件名u (user用戶),g ( group組),o (other其他);w寫訪問權限,r讀訪問權限,x執(zhí)行權限.查看相關命令的幫助:man命令名.顯示當前系統(tǒng)中已注冊的用戶信息:who.顯示當前注冊的用戶信息:whoami5、文件顯示命令顯示指定工作目錄中所包含的容的指令是ls,要說明的是Is命令列出文件的名字,而不是文件的容。該命令的使用方式如下:Is 選項文件目錄列表Is命令中的常用選項如下:-a:顯示所有文件及目錄(ls規(guī)定將文件名或目錄名中開頭為”.”的視為隱藏檔,不會列出)c :按列輸出,縱向排序X:按行輸出,橫向排序

6、1:除文件名外,也將文件狀態(tài)、權限、擁有者、文件大小等信息詳細列出t:根據(jù)文件建立時間的先后次序列出A:同-a,但不列出.(目前目錄)及.”(父目錄)X:按擴展名排序顯示R:遞歸顯示下層子目錄-help :顯示幫助信息-version :顯示版本信息6、查找文件#find 目錄列表匹配標準1)通過文件名查找# find / -name httpd.conf-print2)根據(jù)部分文件名查找#find / -name *http* -print7、顯示文本文件容cat 選項文件列表b計算所有非空輸出行,開始為1。e在每行末尾顯示$符號。n計算所有輸出行,開始為1。s將相連的多個空行用單一空行代替

7、。8、查找文件容grep 選項匹配字符串文件列表v列出不匹配用或正則表達式的行。c對匹配的行計數(shù)。1只顯示包含匹配的文件的文件名。h抑制包含匹配文件的文件名的顯示n每個匹配行只按照相對的行號顯示。i產(chǎn)生不區(qū)分大小寫的匹配,缺省狀態(tài)是區(qū)分大小寫。9、文件復制命令Linux下的cp命令用于復制文件或目錄,該命令是最重要的文件操作命令,其命令格式如下:cp 選項源文件 目標文件cp 選項源文件組 目標目錄a在備份中保持盡可能多的源文件結(jié)構和屬。b作將要覆蓋或刪除文件的備份。f刪除已存在的目標文件。i提示是否覆蓋已存在的目標文件。p保持原先文件的所有者,組權限和時間標志r遞歸拷貝目錄,把所有非目錄文件

8、當普通文件拷貝。R遞歸拷貝目錄。10、文件的刪除命令rm命令可從文件系統(tǒng)中刪除文件及整個目錄。rm命令所使用的命令格式如下: rm 選項文件列表r刪除文件列表中指定的目錄,若不用此標志則不刪除目錄i指定交互模式。在執(zhí)行刪除前提示確認。任何以Y開始的響應都表示肯定;其他則表示否定。f指定強行刪除模式。通常,在刪除文件權限可滿足時rm提示。本標志強迫刪除,不用提示。四、實驗步驟1、以root用戶身份登陸,并使用ls,cat, cd等命令來實現(xiàn)基本的文件操作并觀察 Linux 文件系統(tǒng)的特點,并記錄實驗結(jié)果;2、在/home下新建一個以自己名字命名的子目錄,在這個子目錄中創(chuàng)建一個文件mytest,為

9、這個文件建立一個軟文件 mylink ,用ls - l查看該子目錄有什么變化,并記錄下來。3、在2的基礎上,為mytest文件更改訪問權限,分別用字符串方法和數(shù)值方法,將mytest文件的寫訪問權限都加上,記錄過程和結(jié)果。4、使用重定向。查看/home下的文件及子目錄,并將結(jié)果輸出到 mytest文件中, 并查看mytest文件的容,記錄下來。5、利用gzip命令為/home下面的mytest文件創(chuàng)建一個壓縮文件,然后查看/home 下面的文件,有什么變化,記錄下來。6、利用tar命令將/home下面所有文件打包為一個文件,命名為 mytar,并做記 錄。7、利用命令刪除/home下你自己新建

10、的所有的文件或目錄,記錄下來 .四、實驗體會通過本次實驗,了解了 Linux系統(tǒng)的一些操作,熟悉了該系統(tǒng)的命令工作。實驗報告組別姓名同組實驗者實驗項目名稱實驗二shell程序設計實驗日期第13周周四9,10節(jié)教師評語實驗成績指導教師 廉文娟一、實驗目的1、了解和熟悉創(chuàng)建并使用腳本的步驟2、深入理解shell概念3、學會簡單的shell編程二、實驗容.編寫一個簡單的回顯用戶名的shell程序.使用if-then語句創(chuàng)建簡單的shell程序.使用if-then-else語句創(chuàng)建一個根據(jù)輸入的分數(shù)判斷是否及格的shell程序.使用for語句創(chuàng)建簡單的shell程序.使用while語句創(chuàng)建一個計算1-

11、5的平方的shell程序三、實驗過程.編寫一個簡單的回顯用戶名的shell程序#vi dat#!/bin/bash#filename:datecho Mr.$USER,Today is:echo dateecho Wish you a lucky day!#chmod +x dat#./datroot?luca 1 hast tt ctimod +x dat root(?laca Ihnst tt ./datNr ootl? local host in . ZMHI1raote loca IJlQSt m.使用while語句創(chuàng)建一個計算1-5的平方的shell程序#vi zx#!/bin/ba

12、sh#filename:zxint=1while $int -le 5 dosq=expr $int * $intecho $sqint=expr $int + 1doneecho Job completed#chmod +x zx#./zxLrootGlocaHiost Jtt chnaud xx rrootp1ocaIhost Itt .zxx 1 1 y3I25 Good Job! root!? localhost ASHELL程序中四、實驗體會通過這次實驗,我懂得了定義 SHELL程序設計中的變量,掌握了LINUX基本命令的使用,理解了 Shell程序的設計方法,并且熟悉了 Shell

13、程序編輯、運行、調(diào)試方法與過程。這為我日后繼續(xù)深入學習Linux課程打下基礎。實驗報告組別姓名同組實驗者實驗項目名稱實驗三文件系統(tǒng)程序設計實驗日期第14周周四9,10 節(jié)教師評語實驗成績指導教師廉文娟一、實驗目的:.掌握Linux文件系統(tǒng)的基本原理,結(jié)構和實現(xiàn)的方法.掌握Linux文件系統(tǒng)中文件的建立,打開,讀寫,執(zhí)行,屬性等系統(tǒng)調(diào)用的使用。二、實驗要求.掌握Linux文件系統(tǒng)的架構及目錄結(jié)構。.掌握有關Linux文件系統(tǒng)的常用命令。. 了解有關文件安全方面的知識。三、實驗準備知識:文件及其分類文件是Linux用來存儲信息的基本結(jié)構。一個文件就是被命名的一組信息。Linux文件通常分為普通文件

14、、目錄文件、特別文件(設備文件)、文件。特別文件分為塊特別文件(如磁盤、磁帶、CD-ROM等)和字符特別文件(如終端、打印機等)。塊特別文件與字符特別文件的類型標志分別是b”和C”。例如:普通文件-rw-rw-r-目錄文件drwxrwx-塊特別文件brw-rw-字符特別文件crw-rw-rw-四、實驗容.瀏覽文件系統(tǒng)(1)運行pwd命令,確定你當前的工作目錄。t Ilu cj lhu4 1 r I It pU /rou I(2)利用以下命令顯示當前工作目錄下的所有文件的文件屬性:ls -l對照屏幕上的現(xiàn)實信息,理解各字段的含義。(3)輸入以下命令:ls -ai觀察顯示的信息。注意列出的前兩項,

15、它們分別表示當前目錄和父目錄???下是否還有其他的隱藏文件?使用不帶-a選項的ls命令,注意,不再顯示隱藏文件了。使用不帶-i選項的ls命令,注意,文件的I節(jié)點號(inode)不再出現(xiàn)Ihos L r t I s -a i1CO322HL7(i3ftl.gjlCJlTV160324 ins id 1 1.Ic .s2B 3171)365Bgnjiw21 7ti49K . m? Ldc i Ly1110682j Jiacoild k s . cig174i3M2.giir iva le1 7li46L .jUjuI Ins1IH 10Bba5h_li i s t-oiy1741471.gnoii

16、p-de sk lop763GS . py mpu Lll;035t/bash._iogoii t,ba sh_pro file4H4K5且與1】已rt LSb . recent Ly-u sec“2.跖 7)926*gtkrc. rhn-app 1 e t .rc】l;0:3G8/basha c1613SG.gtkr c-1 .2-gnonie2160360 . tcshrcP cshrc161161he 1 Ic16.YiEinfn161 IBS.fcni 號 ca c he-J161166he 1 lo1E 1S4 ,Xauthnr i ly.jgconf161S7Fthor i tyI

17、E035S Xrmurcas,96529.gsn fd1 匐 32 3i jik la 11, Log16 )5S ,xsef=Bi iin i - Imir - i adatefile1將當前日期和時間存放到新建文件filel中。使用cat命令查看filel文件的容。f rnoIloca 1 hn t iiuhd irff ca t -n f i IetI 六 9月 2 09:01:41 S1 2010(4)利用man命令顯示date命令的用法:man date將date命令的用法附加到文件filel的后邊:man datefile1此時,你在屏幕上看不到有關date命令用法的信息。(6)利

18、用cat或more命令顯示文件filel的容。你會看到,前面date命令的輸出 和有關date命令用法的信息都在這個文件中。利用ls -l filel命令列出文件filel的較詳細的信息,注意其中第二字段(計數(shù)) 的值。(8)利用ln filel ./fa命令進行文件連接。然后運行l(wèi)s -l filel,查看顯示的第二 個字段的值發(fā)生了什么變化。(9)現(xiàn)在想利用cat fa命令顯示文件fa的容,應該如何改動工作目錄?(10)設你的主目錄是/home/helen ,利用 ln s /home/helen/subdir/filel slink 進行 符號。然后,利用ls -l file1 slin

19、k顯示有關file1和slink的信息。注意各自計數(shù)值的 差別。(11)將工作目錄移到你的主目錄下的 subdir。利用head命令顯示file1前10行(這 是默認值)的容:head filel(12)利用tail file1命令顯示file1后10行(這是默認值的容)的容。(13)運行l(wèi)s -l /bin命令顯示/bin目錄的容。你在屏幕上看到什么?i9夠看到/bin下命令的所有信息嗎?(14)利用ls -l /bin|more命令行分屏顯示/bin目錄的容。一次顯示一頁。首先顯 示第一頁。按回車鍵,只顯示該文件的下一行;按 Space鍵,顯示該文件的下一屏。連續(xù)按幾次Space鍵,到達該

20、文件的末尾。回到 shell環(huán)境下。(15)利用cp filel file2命令生成文件filel的副本。然后再利用 cp filel filelbak 命令生成文件file1的另一個副本。利用ls -1命令查看當前工作目錄的容有什么變化。(16)利用cat file*命令列出當前工作目錄中以 巾le開頭的所有文件。(17)運行cat file?命令,與上面結(jié)果相比有何差別?(18)利用刪除命令rm file1bak命令將文件file1bak刪除,再利用ls -l命令查看 工作目錄的容。(19)運行mv file2 fa命令,然后利用ls命令查看兩個文件是否還在工作目錄中。.文件操作(1)查找

21、文件和目錄。利用find命令可以查找文件和目錄的位置。你要告訴系統(tǒng)所要查找的文件名和從哪個目錄開始查找。其常用使用格式是:find pathname-name filename -print其中,pathname是指定開始查找的目錄,filename是所要查找的文件或目錄。-name和-print是find命令的選項。例如:find . -name file1 -print(請看清楚中問那個小點.”代表當前目錄)在當前目錄和所有下面的子目錄中查找名為filel的文件,并且把找到的文件的路徑名顯小在屏帚上0find .-name f* -print(二”代表當前目錄的父目錄)在當前目錄的父目錄的

22、所有子目錄中查找名字以f開頭的文件名。要查找的文件名模式f*必須用引號括起來,因為其中用到shell的通配字符(*)。(2)查找文件中指定的模式。grep命令常用于在文本文件中查找給定的詞或短語,包含給定模式字符串的行在標準輸出(即顯示器)上顯示出來。例如:$grep user3 / etc/ passwd在口令文件/ etc/passwd中查找字符串“user3”。.文件存取權限(1)存取權限。Linux系統(tǒng)對所有文件設置了存取權限。存取權限讓你確定誰可以對你的個人文件和目錄進行訪問以及可以進行什么操作。?把所有用戶分為三類:-文件主(user),即文件的所有者。-組用戶(group),即文

23、件組的成員。-其他用戶(other),即能對系統(tǒng)進行訪問的所有其他用戶。?對一個文件的存取權限分為3種:讀(r)寫(w)執(zhí)行(x)? 一組存取權限以及相應的文件類型統(tǒng)稱為文件模式。如:rw- r- r-:表示文件主有讀和寫的權限,同組用戶和其他用戶只有讀權限。(2)文件存取權限。1)讀權限(r):允許指定的用戶可以打開文件并閱讀其容。存取文件的容作為輸入 的命令都需要有讀權限。例如:cat, more ,巾le和cp命令等。2)寫權限(w):允許指定的用戶可以打開文件并修改其容。用于打開文件、寫文件或修改其容的命令有vi, mail, cp等。3)執(zhí)行權限(x):允許指定白用戶運行(即執(zhí)行)一

24、個二進制文件或者把一個shell腳本文件當作命令來運行。當通過輸入命令名來調(diào)用命令時,必須具有該命令文件 的執(zhí)行權限。例如,ls命令是/bin/ls可執(zhí)行文件的名字。當在命令行方式下輸入ls時,就是在執(zhí)行這個文件。(3)目錄存取權限。1)讀權限(r):允許列出相應目錄中所存放的文件的名字(即目錄白容表)。該權限 也允許shell使用文件名擴展字符(通配符)來匹配文件名。2)寫權限(w):允許從目錄中刪除已有文件或者把新文件添加到目錄中。由于寫 權限允許刪除數(shù)據(jù),所以,通常只有目錄所有者才有寫權限。3)查詢權限(x):允許在目錄中進行查找和使用 cd命令把工作目錄改到它這里。如果沒有這一權限,就

25、不能將此目錄作為路徑名的一部分。這一方式可以有效地阻止對層次文件系統(tǒng)的子分支的訪問。一般說來,為了在實際中使用目錄,你需要有讀和查詢的權限。如果沒有查詢權限,那么,通常也不會具有對目錄的其他權限。使用ls -l命令,列出當前工作目錄中各文件的類型和權限。(4)修改文件權限。文件主或root用戶可以使用chmod命令來修改文件或目錄的權限。修改文件權限的方式有兩種:符號模式和絕對模式。1)符號模式。使用chmod命令修改當前權限設置的一般形式是:chmod key file file 其中,key由以下成分組成:who+ |+modewho這一部分可以由下面的一個和多個字符組成:u, g,?;騛

26、,它們分別表示文件主、組用戶、其他用戶或所有 3種用戶。默認值是a (all)。第二部分必須是以下3個字符中的一個:+,或者二,分別表示增加、刪 除或者設定。mode成份可以由以下字符任意組合:r, w,或x,分別表示讀、寫或者執(zhí)行 /查詢的權限。以上3個部分必須依次輸入,而且它們之間沒有空格。在一個命令行中可以指 定多個key,彼此之間用逗號隔開,中間沒有空格。例如:設文件filel原來的權限是rw-rw-r-,現(xiàn)在想讓所有用戶都具有執(zhí)行權 限,則可使用以下命令:chmod a+x filel該命令執(zhí)行后,文件filel的權限將變成rwxrwxr-x。練習:首先使用ls -1命令查看文件fi

27、lel的存取權限。然后是用以下命令:chmod g-r,o-r filel修改filel的權限一一組用戶和其他用戶都被取消對該文件的讀權限。最后,使用命令:ls -1 filel核查文件filel存取權限的變化情況。2)絕對模式。在chmod命令中可以使用數(shù)字表示不同的權限。key這一部分可由3個或多個數(shù)字組成,其中每一個數(shù)字表示一類用戶(文件主、組用戶、其他用戶)的權限。每個數(shù)字都表示不同的權限,如:r=4(100), w=2(), x=(001)l。如果某種權限被禁用,則對應的值為 00表示權限值的數(shù)字圍從0到7。key部分可以形成一個3位數(shù)字,其中第一位表示文件主權限、第二位表示組用 戶

28、權限,第三位表示其他用戶權限。例如:符號模式rw-rw-r-絕對模式6 (110)6 (110)4 (100)例如:運行一下命令,把文件filel的權限改為對所有用戶都有讀和寫的權限:chmod 666 file1用ls -1命令和查文件file1的權限。(9)使用命令cd ./.,你將工作目錄移到了什么地方?五、實驗體會通過本次實驗,了解了文件的一些相關操作,收獲頗豐。實驗報告組別姓名同組實驗者實驗項目名稱實驗四進程編程實驗日期第15周周四9,10 節(jié)教師評語實驗成績指導教師廉文娟一、實驗目的及要求掌握Linux進程編程的基本方法。二、實驗容步驟:1、啟動一個新進程#include#incl

29、udevoid main()intresult_code;printf(Running ps with systemn);result_code=system(psax&); if(result_code=127)printf(cantstartashell);if(result_code=-1)printf(start error);else printf(running success);運行結(jié)果如圖:2、exec系歹!J函數(shù)#include#include#includevoid main()printf(execseriesfunctionstestn);printf(execven)

30、;char*constps_argv=ps,ax,0;char*constps_envpPATH=/bin:/usr/bin,TERM=console,0;execv(/bin/ps,ps_argv);printf(Done.n);運行結(jié)果如下:3、復制進程映像,folk ()#include#include#include#includeint main()pid_t pid;char *message;int n;printf(fork n);pid = fork();switch(pid)Case -1:perror(fork error);break;case 0:message=th

31、is is child;n=8;break;default:message=this is parent;n=3;break;for(;n0;n-)puts(message);sleep(1);exit(0);運行結(jié)果如圖:分裂后父子進程是彼此相互獨立運行的,所以要想讓父進程等待子進程,只需使用wait()系統(tǒng)調(diào)用:#include#include#include#include#includeint main()Pid-t pid ;char *message;int n;int exit_code;printf(wait testn);pid = fork();switch(pid)cas

32、e-1:perror(fork failed);exit(1);case 0:message = this is child;n = 8; exit_code = 37;break; defaultmessage = this is parent;n= 5;exit_code = 0;break;for(;n0;n-)puts(message);sleep(1);if(pid != 0)int stat_val;pid_t child_pid;child_pid = wait(&stat_val);printf(waiting for child to finishn); if(WIFEXIT

33、ED(stat_val)printf(child exit code is %dn,WEXITSTATUS(stat_val);Elseprintf(child exit failedn);exit(exit_code);運行結(jié)果如下:4、僵尸進程所謂僵尸進程,子進程先于父進程結(jié)束,但是因為父子進程間依然有關系,那么子進程實際上不會真正意義上終結(jié),如果查看當前進程表,會發(fā)現(xiàn)該進程依然存在,且會被標記為/ 。人為產(chǎn)生僵尸進程也并不那么輕松,但是在上面那個等待例子中,如果讓子進程先于父進程退出,在父進程結(jié)束前調(diào)用ps -al命令后就會發(fā)現(xiàn)有這么一個僵尸進程,實現(xiàn)方法如下:#include#incl

34、ude#include#include#includeint main()pid_t pid;char *message;int n;int exit_code;printf(wait testn);pid = fork();switch(pid)case-1:perror(fork failed);exit(1);Case 0:message= this is child;n = 3;exit_code = 37;break;default:message = this is parent;n= 12;exit_code = 0;break;for(;n0;n-)puts(message);

35、if(n = 1 )printf(child finishedn);system(ps -al);sleep(1);if(pid != 0)int stat_val;pid_t child_pid;child_pid = wait(&stat_val);printf(waiting for child to finishn); if(WIFEXITED(stat_val)printf(child exit code is %dn,WEXITSTATUS(stat_val);Elseprintf(child exit failedn);exit(exit_code);運行結(jié)果如圖:Word資料W

36、ord資料Word資料實驗報告組別姓名同組實驗者實驗項目名稱實驗五套接字編程實驗日期第16周周四9,10 節(jié)教師評語實驗成績指導教師廉文娟一、實驗目的掌握Socket編程方法,學會 UDP Socket和TCP Socket編程。二、實驗容及其結(jié)果1、Linux上兩個進程間的通信Server端:調(diào)用socket函數(shù)創(chuàng)建一個socket,然后用bind函數(shù)語氣本機地址 及口號綁定,收到client端消息后,打印出來。Client端:接收server端發(fā)來的字符串,打印出來Server和client通信截圖:UDPSever:#include #include #include #include

37、#include #include #include #include #include #include #define PORT7000int main(void)int sockfd,pktlen;char buf300,buf1300;struct sockaddr_in server,client;sockfd=socket(AF_INET,SOCK_DGRAM,0);memset (char*)&server, sizeof(server), 0);/將已開辟存空間 server 的全部字節(jié)的值 設為值0.server.sin_port = htons(PORT);端 口號serv

38、er.sin_addr.s_addr= INADDR_ANY;/設置網(wǎng)絡地址,INADDR_ANY 表示機器的 IP 地址bind(sockfd,(struct sockaddr *)&server,sizeof(struct sockaddr_in);for (;)/*recv接受client發(fā)送的數(shù)據(jù),recv函數(shù)僅僅是copy數(shù)據(jù),真正的接收數(shù)據(jù)是協(xié)議來 完成的),第一個參數(shù)指定接收端套接字描述符;第二個參數(shù)指明一個緩沖區(qū),該 緩沖區(qū)用來存放recv函數(shù)接收到的數(shù)據(jù);第三個參數(shù)指明buf的長度recv函數(shù)返回際 cop*/ int l=sizeof(struct sockaddr_in)

39、;pktlen = recvfrom (sockfd, buf, sizeof (buf), 0,(struct sockaddr_in *)&client,&l);if (pktlen = 0) break;printf (Received line: %sn,buf);printf (Enter aline:);fgets(buf1,300,stdin);/*并不是send把ns的發(fā)送緩沖中的數(shù)據(jù)傳到連接的另一端的, 而是協(xié)議傳的,send 僅僅是把buf中的數(shù)據(jù)copy到ns的發(fā)送緩沖區(qū)的剩余空間里 返回實際copy的字節(jié)數(shù)*/sendto (sockfd, buf1,sizeof(bu

40、f1), 0,(struct sockaddr_in*)&client,l);close(sockfd);由1n U- fl t|- 4 -eni lpently-virtue I - natM4nbastit sotkK/uipi :岸個目錄enU gent” virtual njchtne:cd u)ckt/udpi?ni-nachisccKeT/udfilS . /udpsRwelMd lift*:swrgf.同 汕(clt*fitlbiter m IEre: fietla client * I n server !Rectled Itnc: gctzd nornVnfl,server

41、IFntk 3 line; 3口od nprning Fi4ve a gcod daylRpceted line: yui loq Eftttr a He;UDPClient :#include #include #include Word資料#include #include #include #include #include #include #define MAX_SIZE1024#define PORT7000#define HOST_ADDR”37int main(int argc,char*argv)int sockfd,buflen;char buf1300,buf2300;struct sockaddr_in server;sockfd=socket(AF_INET,SOCK_DGRAM,0);server.sin_family=AF_INET;server.sin_port = htons(PORT);server.sin_addr.s_addr= inet_addr (HOST_ADDR);Word資料for(;)pr

溫馨提示

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

評論

0/150

提交評論