試驗(yàn)七簡(jiǎn)單的服務(wù)器客戶端程序試驗(yàn)報(bào)告_第1頁(yè)
試驗(yàn)七簡(jiǎn)單的服務(wù)器客戶端程序試驗(yàn)報(bào)告_第2頁(yè)
試驗(yàn)七簡(jiǎn)單的服務(wù)器客戶端程序試驗(yàn)報(bào)告_第3頁(yè)
試驗(yàn)七簡(jiǎn)單的服務(wù)器客戶端程序試驗(yàn)報(bào)告_第4頁(yè)
試驗(yàn)七簡(jiǎn)單的服務(wù)器客戶端程序試驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、洛陽(yáng)理工學(xué)院實(shí)驗(yàn)報(bào)告系別計(jì)算機(jī)系班級(jí)B120503學(xué)號(hào)B12050316姓名段浴課程名稱計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)日期2014/11/8實(shí)驗(yàn)名稱簡(jiǎn)單的客戶/服務(wù)器程序設(shè)計(jì)與實(shí)現(xiàn)成績(jī)實(shí)驗(yàn)?zāi)康模壕幊汰h(huán)境。1、熟悉Micioso代Visual Studio 2008協(xié)議,以及它們之間的區(qū) 別八了解TCP與UDP2服務(wù)器模型原理。3、了解客戶/4、熟悉Socket編程原理,掌 握簡(jiǎn)單的套接字編程。實(shí)驗(yàn)條件:(兩臺(tái)以上)、網(wǎng)卡、已經(jīng)設(shè)定好的以太網(wǎng)環(huán)境硬件:PC機(jī)Microsoft Visual Studio 2008 軟件:實(shí)驗(yàn)原理:1、編寫(xiě)用TCP協(xié)議實(shí)現(xiàn)的Client端和Server端程序并調(diào)試通過(guò)。Socke

2、t。建立流式套接字,返回套接字號(hào)??蛻舴絙md(),套接字s與本地地址相連。listen。,通知TCP,服務(wù)器準(zhǔn)備好接收連接。accept。,接受連接,等待客戶端的連接.連接建立,accept。返回,得到新的套接字SocketQ,建立流失套接字,返回套接字號(hào)connect。,將套接字地主機(jī)連接S與遠(yuǎn),SCsend()/recv(),寫(xiě)數(shù)據(jù),直到數(shù)據(jù) 交換完在套接字上 讀直到數(shù)上讀sc/寫(xiě)數(shù)據(jù),recvt()/send(),在套接字據(jù) 交換完畢關(guān)閉套接字SC服務(wù)結(jié)束S,closesocket。,結(jié)束 TCP關(guān)閉套接字 對(duì)話closesocketQ,關(guān)閉最初套接字 closesocketQ>

3、1 /IO程序分兩部分:客戶程序和服務(wù)器程序。服務(wù)器首先啟動(dòng),它創(chuàng)建套接字之后等待客 戶的連接;客戶啟動(dòng)后工作過(guò)程是:創(chuàng)建套接字,然后和服務(wù)器建立連接;建立連接后,客戶接收鍵盤(pán)輸入,然后將數(shù)據(jù)發(fā) 送到服務(wù)器,服務(wù)器收到到數(shù)據(jù)后,將接收到的字符在屏幕上顯示出來(lái)。或者服務(wù)器接 收鍵盤(pán)輸入,然后將數(shù)據(jù)發(fā)送到客戶機(jī),客戶機(jī)收到數(shù)據(jù)后,將接收到的字符在屏幕 上顯示出來(lái)。端程序并調(diào)試通過(guò)(做完第一個(gè)實(shí)驗(yàn)的Serve】端和UDP協(xié)、議實(shí)現(xiàn)的Client2、編寫(xiě)用。 基礎(chǔ)上做該實(shí)驗(yàn))客戶方服務(wù)器方建立流式套接字,返回套接字號(hào)。SocketOs與本地地址相連。bind。,套接字/recvt()£sen

4、dO,在套接字上讀寫(xiě)數(shù)據(jù),直到數(shù)據(jù)交換完畢closesocket。,關(guān)閉套接字ServerClient端與端的一段對(duì)話程序。TCP3,編寫(xiě)用協(xié)議實(shí)現(xiàn)端下一步將要進(jìn)行操作。 入來(lái)提示ClientSocket。,建立流失套接字, 返回套接字號(hào)將套接字與遠(yuǎn)地主機(jī)連接send()/recv(),寫(xiě)數(shù)據(jù),直到數(shù)據(jù)交換完/在套接字上 讀closesocket(),結(jié)束 UDP關(guān)閉套接字 對(duì)話端根據(jù)用戶的輸Server/ 210實(shí)驗(yàn) 內(nèi)容:端代碼t Sever定義控制臺(tái)應(yīng)用程方:的入口點(diǎn)。力server.cpp :#include <xx-insock.li>#include <windo

5、、sh>#include <$tdio.h>#include <stdlib.h>#pragma comment(lib, WS2_32)SOCKET sockl,sock2;int sin_size :stract sockaddr_in my_addr、their_addr:char name20;Tcp夕初始化函數(shù)void InitOTCPji'n'n); Server:prmtf(n'n建立套接字const WORD wMinvei=0x0101;WSADATA wsadata:if(O !=: WSAStartup(*MinYer

6、、&wsadata) penor(Start socket enor!);ALID_SOCKET=(sockl=:socket(AF_INET、SOCK_STREAM.O)ifUNV perror(Create socket error!);my_addr. sm_family=AF_INET;my_addr. sin_addr S_un. S_addr=INADDR_ANY;my_addr. sinj)ort=htons(1000);if(SOCKET_ERROR=: :bind(sockl /struct sockaddrJ&my-addr.sizeofCmy-addr)

7、(perror(Binding stream socket);exit(l);)開(kāi)始偵聽(tīng)if(SOCKET_ERROR=:hsten(sockl.5) penor(Listening stream socket); exit(l);接受連接 /Ready to serve client. Please connect.nnn); sin_size = sizeof(stnict sockaddr_m);printf(if(sock2=accept(sockl .(stnict sockaddr *)&their-addr,&sm-size)=-1) (perror(Accept

8、ing stream socket);exit(l);)Accepting a new connet:%s.inet_ntoa(their_addr.sin_addr); printf()選擇菜單int menuOchar *$=(char*)nialloc(2*sizeof(cliar);int c;Menu h(n'ji); Server: n'nprintf('.*#疝 口)n);Message*l.Send printf(n);Message*2 Receiveprintf(挈疝川;*3 .Exitprintfl:printfl;*«*«*&

9、#171;*«*«*«*«*doEnter your choice:);printfl;'.gets(s);】心1Q) gets(s);) c=atoi(s);while(c<0|:c>3);free(s);return c;)prmtf(消總發(fā)送函數(shù)void SendO charMsg10240;printfV'Please Input the message:);gets(Msg);Msg10239=0,;/ 410:send(sock2.M$g.strlen(Msg).0);)"消息接收函數(shù)void Recei

10、veO (int len;charb<10240;forint i=0:i<10240;i)buf!i='Q:)if(len=: :rec<sock2 .biif.l 0240.0)=-1) penor(Receing data error); exit(l);)printf(The Received Mes$age:%s'ii,buf);)主函數(shù)/void mainO( InitO; fbr(:;) switch(meimO) case 1: SendO; break: case 2:ReceiveO; break: case 3:exit(O);)/: :

11、close$ocket($ock2);:closesocket(sock 1);/510:WSACleanupO:)Client端代碼:,定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。client.cpp:#include <xxiiisock.h>#include GindoNsh#include <$tdio.h>#include <$tdlib.h>#pragma comment(lib, WS2_32)SOCKET sockl,sock2;int sin_size;stract sockaddr_in my_addr、their_addr:char name20;To

12、p初始化函數(shù),'7voidInitOTCPn'n'n); Client:nn建立套接字const WORD wMinver=0x0101;WSADATA wsadata:if(O!=:WSAStarnip(wMmver,&wsadata)perror(Start socket error!);ALID_SOCKET=(sockl=:socket(AF-INET,SOCK-STREAM,0) if(INV perror(Create socket error!);my_addr.sin_fhniily=AF_NET;my_addr.sin_addr.S_un.S_

13、addr=iiiet_addr(92.168.93.48);my_addr. sin_port=htons(1000);H 請(qǐng)求連接 connecting.);printf(sm_size = sizeof(stnict sockaddr_m);if(sock2=(:coiinect(sockl,(LPSOCKADDR)&my_addr.siii-size)=-l) perror(Acceptmg stream socket);exit(l);)/ 610選擇菜單int menu()char *s=(char*)malloc(2*sizeof(char);mt c; Client: n

14、n MenuMSn);printf(print3*w*g*R*W)* n); Message 2 .Receive * n); 3.Exit* prmtf(* nn);Message l.Sendprintf(printf(print3*、).doEnter your choice:);printf(gets(s);1f(s0=(0,)gets(s);)c=atoi(s);while(c<0|c>3);free(s);return c;)消息發(fā)送函數(shù)void SendO(char Msg 10240;printf(Please Input the message:);gets(Ms

15、g);Msg10239=f0,;:send(sock 1 ,Msg,strlen(Msg) .0);)消息接收函數(shù)“void Receive。/ 710int len;char buff 10240;fbr(int i=0;i<l 0240bufi=,0*;)if(len=: :recv(sockl ,buf. 10240.0)=-1)perror(Recewmg data error);exit(l);)printf(The Received Message:%sn?buf):)主函數(shù)/void inainO (foK:;) switch(menuO) case 1:Send();br

16、eak:case 2:ReceiveO: break:case 3: exit(O);) ):closesocket(sock2): :closesocket(sockl); :WSACleanup(); )/ 810買3僉結(jié)果端界面:發(fā)送信息ServerE: 計(jì)嵬機(jī)網(wǎng)絡(luò)'實(shí)英七'ClientDelmgClient-execonnect ing.Clievit : Menu1.Send Message2 .Receiue Message3 .ExitEnter your choice:1Please Input the neasage :R120?>0216 duanyuClient: Menu端界面:接收信息Server6 E:計(jì)3?機(jī)網(wǎng)絡(luò)'實(shí)若七SeverDebugSever. exe910實(shí)驗(yàn)總結(jié)在老師的精心指導(dǎo)和自己的努力下最終成功完成了本次的實(shí)驗(yàn)內(nèi)容,雖然在過(guò)程中遇到 好多問(wèn)題,在老師和同學(xué)們的幫助下最后順利完成。在此試驗(yàn)中通過(guò)老師的講解和自己 的動(dòng)手操作,通過(guò)本次實(shí)驗(yàn)我了解了一些路由器的基本配置,也學(xué)會(huì)使用了子網(wǎng)劃分的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論