實驗十四用SOKET進(jìn)行客戶與服務(wù)器通信_第1頁
實驗十四用SOKET進(jìn)行客戶與服務(wù)器通信_第2頁
實驗十四用SOKET進(jìn)行客戶與服務(wù)器通信_第3頁
實驗十四用SOKET進(jìn)行客戶與服務(wù)器通信_第4頁
實驗十四用SOKET進(jìn)行客戶與服務(wù)器通信_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實驗十四用SOKE進(jìn)行客戶與服 務(wù)器通信作者:日期:8實驗十四 用SOCKETS行客戶端與服務(wù)器通信一實驗?zāi)康? ' 了解基于Socket的C/S編程的概念;2、掌握使用Socket開發(fā)程序的方法;3、 了解常見的Socket開發(fā)模式的使用。二實驗內(nèi)容在指定平臺下,基于SOCKET開發(fā)一個簡單的C/S通訊程序,使 服務(wù)器端和客戶機(jī)端能分別接收對方發(fā)送的文本信息并顯示。首先運(yùn)行服務(wù)器端程序,在DOS窗口對應(yīng)的目錄下面輸入“ javac TalkServer.java ",編譯成功輸入 “ java TalkServer ” ,然后再打開 一個新的DOS窗口,輸入“javac T

2、alkClient.java ” ,編譯成功 輸入“java TalkClie nt ” ,C 二 XUsei*sXLN>d:D: K>jai/ac TalkServer_D = TalkServel*Client = hello byeClient = hello Seruerznull bye注意,首先運(yùn)行的應(yīng)該是Server端,然后才是Client端,順序不能顛倒。如果先運(yùn)行Client程序,那么Server端將無法找到服務(wù) 器,就會出現(xiàn)異常,如圖所示。:>java TALkGLient annJ t f ind. Program end:>三實驗環(huán)境與分組1 任

3、意JAVA編程環(huán)境,推薦eclipse ;2 兩個同學(xué)一組,修改上個實驗的服務(wù)器程序,并進(jìn)行通訊實驗。 四實驗原理1、Socket 概述Socket(套接字)是一種獨(dú)立于協(xié)議的網(wǎng)絡(luò)編程接口,在 0sl模 型中,主要集中于會話層和傳輸層。Socket接口定義了許多函數(shù)或例 程,程序員可以用它們來開發(fā) TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。Socket最早源于Unix,是一種在進(jìn)程之間交換數(shù)據(jù)的機(jī)制。這個進(jìn)程可以是一臺計算機(jī)上的進(jìn)程,也可以是通過網(wǎng)絡(luò)連接起來的不 同 計算機(jī)上的進(jìn)程。一個Socket套接字是通訊的一端,并有唯一的標(biāo)識與 之對應(yīng)。一個正在使用的Socket套接字都有它的類型和與其相關(guān)的進(jìn) 程

4、。當(dāng)一個Socket連接建立以后,就可以在兩個終端間傳送數(shù)據(jù),并且 這里的數(shù)據(jù)交換是雙向的。當(dāng)其中一個終端關(guān)閉了當(dāng)前的Socket連接 后,整個連接也同時中斷。Socket接口在網(wǎng)絡(luò)軟件的開發(fā)上得到了廣泛的應(yīng)用,并被推廣在多 個操作系統(tǒng)平臺上。WindowsSockets是一個編程接口,它是在伯克利 大學(xué)開發(fā)的套接字接口 (Berkeley Socket Library)的基礎(chǔ)上定義的。它包括了一組擴(kuò)展件,以充分利用Microsoft Windows消息驅(qū)動的特點。規(guī)范的1.1版是在1993年1月發(fā)行的,2.2版在1996年5 月發(fā)行。Win dows 2000 支持 Win sock 2.2

5、 版。在 Winsock2 中,支持多個傳輸協(xié)議的原始套接字,重疊I/O模型、服務(wù)質(zhì)量控制等。2、客戶-服務(wù)器編程模型網(wǎng)絡(luò)應(yīng)用的標(biāo)準(zhǔn)模型是客戶-服務(wù)器模型(Client/server 模 型,簡稱C/S模型)。這是一個不對稱的編程模型,通訊的雙方扮演不 同的角色:客戶和服務(wù)器。一般發(fā)起通訊請求的程序被稱為客戶端,用戶一般是通過客戶端軟 件來訪問某種服務(wù)??蛻舳藨?yīng)用程序通過與服務(wù)器建立聯(lián)系,發(fā)送 請 求,然后接收服務(wù)器返回的內(nèi)容。服務(wù)器則一般是等待并處理客戶請求 的應(yīng)用程序。服務(wù)器通常由系統(tǒng)執(zhí)行,在系統(tǒng)生存期間一直存在,等待 客戶的請求,并且在接收到客戶的請求后,根據(jù)請求向客戶返回合適的 內(nèi)容。

6、它們之間的通訊過程如圖所示??蛻舳丝蛻舳税請求服務(wù)器這種C/S的通訊模型用途十分廣泛,現(xiàn)在的大多數(shù)的網(wǎng)絡(luò)程序都使用了這種模型。在服務(wù)器端,根據(jù)服務(wù)器處理請求方式的不同, 服務(wù)器可以分為兩種類型:1)循環(huán)服務(wù)器這種模式在同一時間只能處理一個客戶端的請求。服務(wù)器在接收 到客戶端的請求后進(jìn)行處理,在處理完畢后才繼續(xù)等待下一個請求的到 來。如果在處理過程中有新的客戶請求,將只能等待。這種模式通常只 能用于處理速度較快、處理邏輯比較簡單的服務(wù)器程序的開發(fā),如 Linux的事件服務(wù)器。2)并發(fā)服務(wù)器這種模式在同一時間可以處理多個請求,服務(wù)器會建立多個處理客 戶請求的進(jìn)程或者線程,在服務(wù)器接收到一個客戶請

7、求后,將按照一定 的算法選擇或者創(chuàng)建一個進(jìn)程或者線程來處理這個客戶請求,而服務(wù)器 可以立即返回等待下一個客戶請求的到來。顯然這種處理模式可以盡量 避免單處理模式中的對客戶請求響應(yīng)不及時的問題,但是這種模式需要占用較多的CPU處理時間和較多的系統(tǒng)資源,并且需要處 理多個進(jìn)程或者線程之間的通訊和數(shù)據(jù)共享,編程具有一定的復(fù)雜性。 通常使用這種模式處理比較耗時或者對速度要求較高的服務(wù),如文件傳 輸服務(wù)(FTP)等。五實驗步驟步驟一:需求分析這是一個簡單的文本傳輸程序,客戶端從標(biāo)準(zhǔn)輸入(鍵盤)上輸入 文本后,發(fā)送到服務(wù)器,服務(wù)器將文本顯示在標(biāo)準(zhǔn)輸出(顯示屏)上, 反之同樣操作。使用Socket進(jìn)行Client/server程序設(shè)計的一般連接過 程是這樣的:Server端監(jiān)聽某個端口是否有連接請求,Client端發(fā)回端向Server端發(fā)出連接請求, Server端向ClientAccept(接受)信息,一個連接就建立起來了。ServerClient端 都可 以通過send。、wiite()等方法與對方通信。對于一個功能齊全的 Socket,其工作過程包含以下四個基本步驟:1、倉U建 Socket ;2、打開連接到Socket的輸入輸出流;3、按照一定協(xié)議對Socket進(jìn)行讀/寫操作;4、關(guān)閉 Socket。步驟二

溫馨提示

  • 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

提交評論