Linux報告-昆明理工大學(xué)歐陽鑫_第1頁
Linux報告-昆明理工大學(xué)歐陽鑫_第2頁
Linux報告-昆明理工大學(xué)歐陽鑫_第3頁
Linux報告-昆明理工大學(xué)歐陽鑫_第4頁
Linux報告-昆明理工大學(xué)歐陽鑫_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

昆明理工大學(xué)信息工程與自動化學(xué)院學(xué)生實(shí)驗(yàn)報告(2016 —2017學(xué)年第二學(xué)期)課程名稱: 操作系統(tǒng)及程序設(shè)計開課實(shí)驗(yàn)室:呈貢校區(qū)信自樓 年260月173日年級、專業(yè)、班學(xué)號姓名成績實(shí)驗(yàn)項(xiàng)目名稱《操作系統(tǒng)及程序設(shè)計》指導(dǎo)教師歐陽鑫教師該同學(xué)是否了解設(shè)計原理:了解口基本了解口不了解口評語該同學(xué)的上機(jī)能力:該同學(xué)的上機(jī)是否達(dá)到要求強(qiáng)口:達(dá)到口中等口基本達(dá)到口差口未達(dá)到口上機(jī)報告是否規(guī)范:上機(jī)過程是否詳細(xì)記錄:規(guī)范口詳細(xì)口基本規(guī)范口一般口不規(guī)范口沒有口注:個為優(yōu)個為良個為及格其余為不及格。教師簽名:年月日目錄\o"CurrentDocument"上機(jī)一:Linux及開發(fā)環(huán)境安裝 ?頁上機(jī)二:LinuX的文件及目錄操作1 ?頁上機(jī)三:LinuX的文件及目錄操作2 ?頁\o"CurrentDocument"上機(jī)四:LinuX進(jìn)程及網(wǎng)絡(luò)開發(fā)1 ?頁上機(jī)五:LinuX進(jìn)程及網(wǎng)絡(luò)開發(fā)2 ?頁上機(jī)一:Linux及開發(fā)環(huán)境安裝、實(shí)驗(yàn)?zāi)康募耙蟀惭b虛擬機(jī),并在虛擬機(jī)上安裝系統(tǒng)二、實(shí)驗(yàn)環(huán)境和相關(guān)軟件及版本,三、實(shí)驗(yàn)內(nèi)容及步驟(一)安裝虛擬機(jī)雙擊打開下載好的應(yīng)用程序彈出安裝向?qū)MwareWorkstation安裝警告:此程序受版權(quán)法和國際條約保護(hù)0歡卻使用VMWareWOrkStatiOn安裝向?qū)О惭b向?qū)⒃谀挠嬎銠C(jī)上安裝VMwareWorkstation。要維續(xù),請單擊“下一步”。下一步⑼>vmwareWorkstation勾選我接受許可協(xié)議中的條款選擇典型安裝選擇安裝路徑點(diǎn)下一步繼續(xù)進(jìn)行安裝在桌面創(chuàng)建快捷方式VMwareWorkstation??在以下位置創(chuàng)建VMwareWorkstation的快捷方式。0卓面?國開始菜單程序文件夾圖<上一步回下一步時>快捷方式選擇您要放人系統(tǒng)的快捷方式0點(diǎn)下一步繼續(xù)彈出注冊碼頁面輸入注冊碼安裝完成并打開rMv.ιareWorkstationQ在此處鍵入內(nèi)容澄行搜索▼里我的計算機(jī)里共享虛擬機(jī)vmwareWorkstation10連接遠(yuǎn)程!第器在遠(yuǎn)程服務(wù)器上查看和莒理在拉機(jī).軟件更新虛擬化物理機(jī)從現(xiàn)有物理機(jī)創(chuàng)建虛擬機(jī).(二)安裝打開新建虛擬機(jī)向?qū)РⅫc(diǎn)擊創(chuàng)建新的虛擬機(jī)歡迎使用新建虛擬機(jī)向?qū)M褂檬裁窗感偷臄嘀??建典型(推薦)仃)通過幾個簡單的步驟創(chuàng)建WmkSGtbn10.0虛撅機(jī)。自定義(高級NC)創(chuàng)建帶有SCSI控制器類型、虛擬磁盤類型以及與舊版VMwBre產(chǎn)品兼容性等高級選項(xiàng)的虛擬機(jī)。幫助] <上一步出)][下一步(M)AJ[取消女長苑懿吠1豕乂仟設(shè)置用戶名和密碼制定磁盤容量安裝中f?jUbuntu64位-VMWareWorkstationΘMi我的計算機(jī)埠Ubuntu64位,單擊虛擬屏幕

3可發(fā)送按鍵安裝成功并登錄四、實(shí)驗(yàn)結(jié)果、分析和結(jié)論本次實(shí)驗(yàn)我成功安裝了虛擬機(jī)對 有了第一次比較接近的認(rèn)識,在課上學(xué)習(xí)是比不上自己實(shí)際動手操作的,在這個過程中我感覺自己對產(chǎn)生了一些興趣,受益良多。上機(jī)二:Linux的文件及目錄操作1一、實(shí)驗(yàn)?zāi)康募耙笳莆瘴募澳夸洸僮鞯幕久?,并在虛擬機(jī)上啟動命令行加以實(shí)現(xiàn)二、實(shí)驗(yàn)環(huán)境和相關(guān)軟件及版本W(wǎng)i7nd、oVwMswa、ruebuntu三、實(shí)驗(yàn)內(nèi)容及步驟1用命令顯示當(dāng)前目錄下的文件、用創(chuàng)建一個目錄文件lyr?ubuntuπkdirtest1Iy「@iJbUntUTtotal48dEX「=x「=x3.IsIV「-Liyr4096Jun611:45Desktopdrwxr-xr-x2IV「IV廠4096Jun608:59Documentsdrwxr-xr-x2IV「IV廠4096Jun608:59Downloads-rw-「=-「=-1IV「iyr89S0Jun608:51exaπples.desktopdrwxr-xr-x2IV「IV廠4096Jun608:59Musicdrwxr-xr-x2IV「IV廠4096Jun608:59Picturesd「以X「?x「?x2IV「iyr4096Jun608:59Publicdrwxr-xr-x2IV「IV廠4096Jun608:59TemplatesdEX「wx「kx2IV「Iyr4096Jun611:51testld「以X「?x「-x2iyrIV「4096Jun608:59Vtdeoslyr@ubuntu:-$nkdir-ptest2∕test2.2lyr@ubuntu:T「IS-itotal52drwxr-xr-x3IV「iyr4096Jun611:45Desktopdrwxr-xr-x2IV「iyr4096Jun608:59Documentsdrwxr-xr-x2IV「IV廠4096Jun608:59Downloads-rw-r--r--1IV「iyr8980Jun608:51examples*desktopdrwxr-xr-x2IV「iyr4096Jun608:59Musicdrwxr-xr-x2IV「IV廠4096Jun608:59Picturesdrwxr-xr-x2IV「iyr4096Jun608:59Publicdrwxr-xr-x2IV「iyr4096Jun608:59Templatesdrwxrwxr-x2IV「IV廠4096Jun611:51testldrwxrwxr-x3IV「IV廠4096Jun611:54test2d「NX「-x「-x2IyrJyr4096Jun6◎S:59VideQSILVrJbUntUA寫nkdir-vptest3∕test3*3πkdir:createddirectory1tests1nkdir:createddirectory1test3∕test3i33用 刪除一個目錄文件刪除空目錄V「@UbUntU?5rndirtestlV「@UbUntUA5Is-1otel52d∣rwxr-xr-x3IV廠Iyr4096Jun611:45Desktopd∣rwxr-xr-x2IVrIyr4096Jun608:59Documentsdlrwxr-xr-x2IV廠IV廠4096Jun608:59Downloads-rw-「一「一1IV廠Iyr8980Jun608:51examples.desktopd∣rwxr-xr-x2IVrIyr4096Jun608:59Musicdlrwxr-xr-x2IV廠IV廠4096JUn608:59Picturesd∣rwxr-xr-x2IV廠Iyr4096Jun608:59Publicd∣rwxr-xr-x2IVrIyr4096Jun608:59Templatesdlrwxrwxr-X3IV廠IV廠4096JUn611:54test2d∣rwxrwxr-X3IV廠Iyr4096Jun611:58test3d∣rwxr-xr-x2IVrIyr4096Jun608:59Videos刪除非空目錄IyHgubuntuASrπDesktoprπ:cannotremove1Desktop1;IscIdirectoryIyngiJbUntUA$「Is-1total52drwxr-xr-x3IV「IV「4096Jun611:45Desktopdrwxr-xr-x2IV「IV「4096Jun608:59Documentsdrwxr-xr-x2IV「IV「4096Jun608:59Downloads-rw-「=-「=-1IV「IV「8980Jun6◎8:51exanplesidesktopdrwxr-xr-x2IV「IV「4096Jun6◎8:59Musicdrwxr-xr-x2IV「IV「4096Jun6◎8:59Picturesdrwxr-xr-x2IV「IV「4096Jun6◎8:59Publicdrwxr-xr-x2IV「IV「4096Jun6◎8:59Templatesdrwxrwxr'x3IV「IV「4096Jun611:54test2drwxrwxr'x3IV「IV「4096Jun611:58te≡t3drwxr-xr-x2l燈IV「4096Jun6◎8:59Videos、用-命令顯示當(dāng)前目錄下的文件的文件屬性IVr@iJbUntUA5Is-?* tconfig.gconfPicturesVideos?■Desktop.gnupgiprofileiXauthorlty*bash_history?dnrc*ICEauthorityPublicixsession-errors.bashlogoutDocumentsAocalTemplates.x&e&sion-errorsiold*beshreDownloads.PiQzVLlatest2.cacheexamples.desktopMusictest3、用命令改變文件名IV「@iJbUntU:TπιvDesktop/filesfileILV「@iJbUntUAS1≡-1total56d∣rwxr-xr-x2IV「IVr4096IUn612:17Desktopd∣rwxr-xr-x2IV「Iyr4096Jun608:59Documentsd∣rwxr-xr-x2IV「IVr4096Jun608:59Downloads-rw-r--r--1IV「IV「S980Jun608:51examples*desktopd∣rwxr-xr-x2IV「IVr4096Jun611:43filed∣rwxr-xr-x2IV「IVr4096Jun608:59Musicdlrwxr-xr-x2IV「IV「4096Jun608:59Picturesd∣rwxr-xr-x2IV「IVr4096Jun608:59Publicd∣rwxr-xr-x2IV「IVr4096Jun608:59Templatesdlrwxrwxr-x3IV「IVr4096Jun611:54testad∣rwxrwxr-x3IV「IVr4096Jun611:58test3d∣rwxr-xr-x2IV「Iyr4096Jun608:59Videos、用 命令改變文件屬性(改為可執(zhí)行文件)ILV「@(JbUntUASchπodDesktop/file/kodld.jpg∣+rko?lβΛxtchmod:invalidnode:fDesktop∕file∕ko?la*jpg+r*Try1chmod--help1formoreinf?rnetion.、用命令復(fù)制文件IyrQubuntu:-SCPIyr?ubuRtu:Is-ajavaeeljavaeeΛtotal284。drwxr-xr-xdrwxr-xr-xdrwxr-xrx-ΓW■r--r--drwxr-xr-x-「w-r-1「---rw-r--r-d「Hx「』「?xdrwxr-xr-xdrwxr-xr-xdrwxr-xr-xdrwxrwxr-xdrwxrwxr-xdrwxr-xr-x2212112222IyrIV廣IV「iyrIyrIyrIyrIV「IV「IV「IV「Xyriv「Ivr40964096409689S0409614246Θ9142460940904fl9640964090409640964096JunJUnJunJu∩JUnAprAprJunJunJunIUnJunJunJune666612126656666DesktopDocumentsDownloadsexamples.desktopfilejavaeel*docxJavaee.docxMusicPteturesPublicTemplatestestztestsVideos、用 命令壓縮文件成 文件Lyr@ubuntu:$gztptest2.txtgztp:test2,txtisadirectory--ignoredlyr?ubuπtui"SISDesktop exanpYes.desktop javaee.docx Public test3Documents file Music Templates Videos卜。*口1,口ads javgecLdocx PietUre5 te*±2.g1、用- 命令解壓文件lyr@ubuntugzip-dvtest2*gzgz?p:test2*gzisedirectory--ignoredIyrQubuntu:~SISDesktop examples*desktop jeveee.docx Public testsDocuments file Music Templates VideosDownloads jeveeel*docx Pictures test2.txt四、實(shí)驗(yàn)結(jié)果、分析和結(jié)論通過這次實(shí)驗(yàn),我第一次在Linux系統(tǒng)下使用命令,基本掌握了文件和目錄的創(chuàng)建和刪除、文件復(fù)制、文件編輯、文件重命名、顯示和改變文件屬性、壓縮文件和解除壓縮等基本命令,但是對于這些命令還不熟悉,需要多加使用以此鞏固。上機(jī)三:LinuX的文件及目錄操作2一、實(shí)驗(yàn)?zāi)康募耙罄孟到y(tǒng)調(diào)用和標(biāo)準(zhǔn)函數(shù)庫對文件和目錄進(jìn)行操作。二、實(shí)驗(yàn)環(huán)境和相關(guān)軟件及版本三、實(shí)驗(yàn)內(nèi)容及步驟編寫文件Oinclud已VIJniStd.h>Sincludecstdlib.h>intnein()if((write(1,,,hereissomedata,r,18))1-18)write(2,,rawrite巳「「◎「hasoccurredonfiledescriptorl?n,',46);exit(0);mynew.c(?/Desktop)-gedit調(diào)用文件IyrQubuntu:?$catDesktop∕nyπew.c#include<unistd*h>#includeKStdIib*h>intPlain(){if((write(l,,lhereissomeddt?",18))-18)write(2,,'awriteerrorhasoccurredonfiledescriptorl?n”,46);exit(0);編譯并運(yùn)行文件Iyr@iIbUlIItUA5gccDesktop∕nyπew.clyr?ubuntu:-$√a,outhereissomed?t?lyr?ubuntu:∣系統(tǒng)調(diào)用——編寫 文件#include<stdlib.h>intn?in()charbuffer[128];intnre?d;nread_read(θrbuffer,128);if(nread==l)write(2,,rareaderrorh?soccured?n,1,26);if((?fri?e(lrbuffer,nread))1=nread)WiritR(2,"awriteerrorh?soccured?n,r,27);exit(θ);REAcMZ(-/Desktop)-gedit系統(tǒng)調(diào)用一一編譯 文件lyr?ubuntugccDesktop/READ4CDesktop/READ.C:Infunctionfintmatn()':口esktop/REA口":6:24:rror:"nread_read*WdSnotdeclaredtnthisscopenread-read(βjbufferj128);A口esktop/REA口":8:40:rror:"write*wesnotdeclaredinthisscopewr?te(2,,r?readerrorhasoccured?n'r,26);ADesktop/READ.C:9:25:rror:fwrite*wasnotdeclaredinthisscopeif((write(ljlbufferjnread))!=πread)四、實(shí)驗(yàn)結(jié)果、分析和結(jié)論通過此次實(shí)驗(yàn),我對在 系統(tǒng)中使用語言操作和系統(tǒng)調(diào)用等有了一定的了解,同時也遇到了一些難題,對很多函數(shù)庫的用法以及深層次的文件目錄操作都很欠缺,對難題也沒有很好地解決,還需要多加練習(xí)動手,這方面的技術(shù)和能力還有待加強(qiáng)。上機(jī)四:Linux進(jìn)程及網(wǎng)絡(luò)開發(fā)1一、實(shí)驗(yàn)?zāi)康募耙罄?等系統(tǒng)調(diào)用進(jìn)行網(wǎng)絡(luò)開發(fā)二、實(shí)驗(yàn)環(huán)境和相關(guān)軟件及版本三、實(shí)驗(yàn)內(nèi)容及步驟程序1 進(jìn)程控制編寫編譯運(yùn)行的過程如下:lyr?ubuntu:catDesktop/forkl*c

tfinclude<stdio*h>

n?in(){intρl,ρ2,i;if(pl=fork())for(i=0;i<500;ii-i-)PIrintf=("child%d?n,r,i);else{if(ρ2=fork())for(i=0;i<500;ii-i-)printf("son%d?n",i);lyr?ubuntu:?$gccDesktop/forkl.cDesktop/fDrkl.c:2:1:warning:returntypedefaultstoftnt'[-Winpliclt-Int]nain()ADesktDp∕fDrkl.c:Infunctionfπain,:Desktop/fDrkl.c:5:7:warning:implicitdeclarationoffunction'fork'[-Winplicit-function-declaration]if(ρl=forkQ)?G@IV「@iJbUntU:-son484sonsonsonsonsonsonsonsonsonsonsonsonson477478479480481482483485486487488489490491492495496497498499sonsonsonsonsonsonsonson493son494程序2:編寫編譯運(yùn)行的過程如下:Iy「@iJbUntUA5eetDesktop∕fork2,c?includecunistd*h>?tnclude<stdio*h>intn?in()(Pldtfpid;//printf("fork!,r);prtntf("fork!∕n,r);fpid=fork();if(fpid<θ)printf(,lerrorinforklr,);elseif(fpid=e)PrTintf("I thechildprocess,nyprocessidis%d∕n'r,getpid());elseprintf(,rIentheparentprocess,πyprocessidis%d∕n'r,getpid());return0;lyr?ubuntuz~?gccDesktop∕fork2.clyι*0ιJbUntUAS?/e.outfork!∕∏I?ntheparentprocess,nyprocessidi&3δO4∕nlyr?ubuntιιfork!∕∏I?∏thechildprocess,πyprocessidis38θ5∕n Z四、實(shí)驗(yàn)結(jié)果、分析和結(jié)論通過此次實(shí)驗(yàn)我對在 中的進(jìn)程調(diào)控有了一些認(rèn)識,并且基本掌握了進(jìn)程調(diào)控的一些方法,只是學(xué)習(xí)還很淺,需要不斷深入加強(qiáng)。上機(jī)五:Linux進(jìn)程及網(wǎng)絡(luò)開發(fā)2一、實(shí)驗(yàn)?zāi)康募耙箝_發(fā)一個 命令行基于結(jié)構(gòu)的 的即時聊天程序。二、實(shí)驗(yàn)環(huán)境和相關(guān)軟件及版本三、實(shí)驗(yàn)內(nèi)容及步驟1、客戶端設(shè)計流程:是否輸入Pthread_Cr巳at?;接受鍵盤輸入打印信息Connect();執(zhí)彳丁threadmainQ.ReeΛ0定長數(shù)據(jù)品IId0:定長數(shù)據(jù)創(chuàng)建、設(shè)置套接字Clo≤e(5ock)開始創(chuàng)建、?5置套接字Nameland();、服務(wù)端設(shè)計流程:創(chuàng)建、設(shè)置套接字Bamd();ListrrenO≡5endQ轉(zhuǎn)發(fā)信息3編寫服務(wù)端收發(fā)消息程序#include<stdio.h>#include<stdlib.h>#include<sys/types.h> //數(shù)據(jù)類型定義#include<sys/stat.h>#include<netinet/in.h>//定義數(shù)據(jù)結(jié)構(gòu)sockaddr_in#include<sys/socket.h>//提供socket函數(shù)及數(shù)據(jù)結(jié)構(gòu)#include<string.h>#include<unistd.h>#include<signal.h>#include<sys/ipc.h>#include<errno.h>#include<sys/shm.h>#include<time.h>#definePERMS_IRUSR|S_IWUSR#defineMYPORT3490 //宏定義定義通信端口#defineBACKLOG10//宏定義, 定義服務(wù)程序可以連接的最大客戶數(shù)量#defineWELCOMEcometothechatroom! //宏定義,當(dāng)客戶端連接服務(wù)端時,想客戶發(fā)送此歡迎字符串//轉(zhuǎn)換函數(shù),將int類型轉(zhuǎn)換成char*類型voiditoa(inti,char*string){intpower,j;j=i;for(power=1;j>=10;j/=10)power*=10;for(;power>0;power/=10){*string++='0'+i/power;i%=power;}}//得到當(dāng)前系統(tǒng)時間voidget_cur_time(char*time_str){time_ttimep;structtm*p_curtime;char*time_tmp;time_tmp=(char*)malloc(2);memset(time_tmp,0,2);memset(time_str,0,20);time(&timep);p_curtime=localtime(&timep);itoa(p_curtime->tm_hour,time_tmp);strcat(time_str,time_tmp);itoa(p_curtime->tm_min,timetmp);strcat(time_str,time_tmp);itoa(p_curtime->tm_sec,timetmp);strcat(time_str,time_tmp);free(time_tmp);}//創(chuàng)建共享存儲區(qū)key_tshm_create(){key_tshmid;//shmid=shmget(IPC_PRIVATE,1024,PERM);if((shmid=shmget(IPC_PRIVATE,1024,PERM))==-1){ShareMemoryr(errno));exit(1);}returnshmid;}//端口綁定函數(shù) ,創(chuàng)建套接字,并綁定到指定端口intbindPort(unsignedshortintport){intsockfd;structsockaddr_inmy_addr;sockfd=socket(AF_INET,SOCK_STREAM,0);//創(chuàng)建基于流套接口my_addr.sin_family=AF_INET;//IPv4協(xié)議族my_addr.sin_port=htons(port);//端口轉(zhuǎn)換my_addr.sin_addr.s_addr=INADDR_ANY;bzero(&(my_addr.sin_zero),0);if(bind(sockfd,(structsockaddr*)&my_addr,sizeof(structsockaddr))==-1){exit(1);}returnsockfd;}intmain(intargc,char*argv[]){intsockfd,clientfd,sin_size,recvbytes;//定義監(jiān)聽套接字、客戶套接字pid_tpid,ppid; //定義父子線程標(biāo)記變量char*buf,*r_addr,*w_addr,*temp,//定義臨時存儲區(qū)structsockaddr_intheir_addr; //定義地址結(jié)構(gòu)key_tshmid;shmid=shm_create();//創(chuàng)建共享存儲區(qū)temp=(char*)malloc(255);time_str=(char*)malloc(20);sockfd=bindPort(MYPORT);//綁定端口while(1){if(listen(sockfd,BACKLOG)==-1)//在指定端口上監(jiān)聽{exit(1);}if((clientfd=accept(sockfd,(structsockaddr*)&their_addr,&sin_size))==-1)//接收客戶端連接{exit(1);}from:%dsend(clientfd,WELCOME,strlen(WELCOME),0);//發(fā)送問候信息buf=(char*)malloc(255);ppid=fork();//創(chuàng)建子進(jìn)程if(ppid==0){);pid=fork();//創(chuàng)建子進(jìn)程while(1){if(pid>0){//父進(jìn)程用于接收信息memset(buf,0,255);//sleep(1);if((recvbytesrecv(clientfd,buf,255,0))<=strcpy(0){perror(close(clientfd);raise(SIGKILL);exit(1);}//writebuf'sdatatosharememoryw_addr=shmat(shmid,0,0);memset(w_addr, 1024);strncpy(w_addr,buf,1024);get_cur_time(time_str);strcat(buf,time_str);%}elseif(pid==0){//子進(jìn)程用于發(fā)送信息sleep(1);r_addr=shmat(shmid,0,0);temp,r_addr);get_cur_time(time_str);strcat(r_addr,time_str);//printf(//if(send(clientfd,buf,strlen(buf),0)==-1)if(send(clientfd,r_addr,strlen(r_addr),0)==-1){per}memset(r_addr, 1024);strcpy(r_addr,temp);}}else}}

}free(buf);close(sockfd);close(clientfd);return0;}if(strcmp(temp,r_addr)!=0){lyr^)ubuntu:Zprintf('r ?n");free(buf);cl□se(sockfd);close(clIentfd);return0;)lyr?ubuntu:-$gccDesktop/five*cDesktop/fi,ve.c:1:18:warning:extratokensatend?include<stdio.h>□f"includedirectiveDesktop/fi.ve.c:2:19:warning:extraOinclude<5tdlib*h>tokensetendofSincludedirectiveDe≡ktop∕fIve.c:3:22:warning:extratokensetend#includecsys/types.h>〃數(shù)據(jù)類型定義ADesktop/five.c:4:21:warning:extratokensatend?tnclude<sys∕stat*h>ADesktop/five.c:5:23:warning:extratokensetend?tnclude<netiπet∕tn4h>//定義數(shù)據(jù)結(jié)構(gòu)of"includedirectiveof^includedirectiveof#includedirective4編寫客戶端收發(fā)消息程序#include<stdio.h>#include<netinet/in.h> //定義數(shù)據(jù)結(jié)構(gòu)sockaddr_in#include<sys/Socket.h> //提供 socket0000000#include<sys/types.h>//數(shù)據(jù)類型定義#include<string.h>#include<stdlib.h>#include<netdb.h>#include<unistd.h>#include<signal.h>#include<time.h>intmain(intargc,char*argv[]){structSockaddr_inclientaddr;//定義地址結(jié)構(gòu)pid_tpid;intClientfd,sendbytes,recvbytes;//定義客戶端套接字structhostent*host;char*buf,*buf_r;if(argc<4){hostportexit(1);}host=gethostbyname(argv[1]);if((clientfd=socket(AF_INET,SOCK_STREAM,0))==-1) //創(chuàng)建客戶端套接字{exit(1);}//綁定客戶端套接字clientaddr.sin_family=AF_INET;clientaddr.sin_port=htons((uint16_t)atoi(argv[2]));clientaddr.sin_addr=*((structin_addr*)host->h_addr);bzero(&(clientaddr.sin_zero),0);if(connect(clientfd,(structsockaddr*)&clientaddr,sizeof(structddr))==-1)//連接服務(wù)端{(lán)exit(1);}buf=(char*)malloc(120);sockamemset(buf,0,120);buf_r=(char*)malloc(100);if(recv(clientfd,buf,100,0)==-1){exit(1);}Pid=fork();//創(chuàng)建子進(jìn)程while(1){if(Pid>0){//父進(jìn)程用于發(fā)送信息//get_cur_time(time_str);strcPy(buf,argv[3]);memset(buf_r,0,100);//gets(buf_r);fgets(buf_r,100,stdin);strncat(buf,buf_r,strlen(buf_r)-1);//strcat(buf,time_str);if

溫馨提示

  • 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

提交評論