2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、即時(shí)聊天以及搬運(yùn)工,程雪峰6.25,Socket編程,網(wǎng)絡(luò)基礎(chǔ),1. TCP/IP體系結(jié)構(gòu)在分層網(wǎng)絡(luò)方面,有兩個(gè)重要的網(wǎng)絡(luò)體系模型,就是OSI參考模型和TCP/IP參考模型。OSI把網(wǎng)絡(luò)分成7層(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層),它是基于國際標(biāo)準(zhǔn)化組織提出的。TCP/IP參考模型把網(wǎng)絡(luò)通信過程分成應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層4個(gè)層次。,2. TCP協(xié)議TCP(傳輸控制協(xié)議)協(xié)議提供了一種可靠的數(shù)據(jù)

2、傳輸服務(wù),它是面向連接的,大多數(shù)的網(wǎng)絡(luò)應(yīng)用程序都使用它來實(shí)現(xiàn)傳輸層。它的可靠性是建立在大量開銷的基礎(chǔ)上。,3. IP協(xié)議大家對網(wǎng)際協(xié)議(IP)的認(rèn)識通常都來自IP地址。一個(gè)IP地址是一個(gè)32位的數(shù),并且每一個(gè)標(biāo)準(zhǔn)的IP地址在整個(gè)Internet上都是唯一的,它可以用來在Internet上定位一臺機(jī)器。IP地址由4個(gè)0~255之間的數(shù)組成,數(shù)字之間用一個(gè)點(diǎn)號隔開(例:211.204.0.1)。IP地址只是IP協(xié)議的一部分,IP協(xié)議是一

3、個(gè)無連接、不可靠的協(xié)議。Internet上的說有數(shù)據(jù)都是通過IP包流動(dòng),IP包是IP傳輸?shù)幕締挝弧?4. UDP協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議(UDP)和TCP協(xié)議一樣,都是傳輸層上的協(xié)議,但是它與TCP有著本質(zhì)的區(qū)別,它是一個(gè)不可靠、無連接和面向消息的協(xié)議,UDP又叫用戶數(shù)據(jù)報(bào)協(xié)議,它使用數(shù)據(jù)報(bào)進(jìn)行傳輸。UDP是不可靠傳輸,但是它占用資源比較少,所以可以用在一些可靠性要求比較低的網(wǎng)絡(luò)應(yīng)用上,例如:網(wǎng)絡(luò)視頻會議等。,5. 端口端口可以被理解

4、成計(jì)算機(jī)與外界通信交流的窗戶。網(wǎng)絡(luò)上的一臺計(jì)算機(jī)可以提供很多服務(wù),例如Web服務(wù)和FTP服務(wù)。那么如何區(qū)分不同機(jī)器上的這些不同的服務(wù)?單獨(dú)依靠IP地址是不行的,因?yàn)镮P地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對多的關(guān)系。實(shí)際上計(jì)算機(jī)是通過“IP地址+端口號”來區(qū)分不同服務(wù)的。,這些協(xié)議都是非常嚴(yán)格并經(jīng)過長時(shí)間驗(yàn)證的,在新的版本公布之前必須嚴(yán)格遵守。,6. 套接字套接字(socket)可以理解成兩個(gè)程序進(jìn)行通信連接中的接口,套接字是指向基于網(wǎng)絡(luò)的另一

5、個(gè)程序的通信鏈的句柄。,TCP網(wǎng)絡(luò)編程,實(shí)現(xiàn)客戶端在Java的API結(jié)構(gòu)中,java.net包是被用來提供網(wǎng)絡(luò)服務(wù)的,開發(fā)人員可以使用該包中的Socket類來建立客戶端程序。下表給出了Socket類中的常用方法。,除了給定的方法外,Socket也為開發(fā)人員提供了許多構(gòu)造函數(shù)來生成Socket實(shí)例。比較常用的方法是Socket(String host,int port),使用這個(gè)構(gòu)造函數(shù),需要提供服務(wù)器的主機(jī)信息和端口信息。例1:

6、解釋:首先建立了一個(gè)Socket,服務(wù)器主機(jī)名是www.sina.com.cn,端口是80。而后分別輸出了服務(wù)器與客戶機(jī)的主機(jī)地址和端口,最后調(diào)用close方法關(guān)閉了Socket。因?yàn)橛玫骄W(wǎng)絡(luò)和I/O的功能,所以需引入java.net和java.io兩個(gè)包。另外,因?yàn)槌绦蚩赡軙a(chǎn)生I/O異常,所以需進(jìn)行異常處理。,例2:實(shí)現(xiàn)了一個(gè)能從服務(wù)器獲取信息的客戶端。這個(gè)程序?qū)⒑屠?的服務(wù)器端程序進(jìn)行交互。程序解釋:例2中定義的Socket連

7、接本機(jī)的2231端口,首先通過getOutputStream方法獲得輸出流,因?yàn)橄蚍?wù)器傳送的是字符信息,所以使用PrintWriter進(jìn)行包裝輸出。然后通過getInputStream方法獲得輸入流。因?yàn)閭魅氲囊彩亲址畔?,所以用InputStreamReader對這個(gè)流進(jìn)行包裝。為了緩存這個(gè)流,再使用BufferedReader進(jìn)行第二次包裝。最后通過一個(gè)循環(huán)來讀出所有信息的內(nèi)容。,2. 實(shí)現(xiàn)服務(wù)器端使用java.net包中的Se

8、rverSocket類,這個(gè)類用來建立一個(gè)服務(wù)器套接字,此類常用的方法如下:,除了要知道上面的常用方法,還要使用ServerSocket(int port)構(gòu)造函數(shù)來建立一個(gè)ServerSocket的實(shí)例,參數(shù)為所要監(jiān)聽的端口號。例3:程序解釋:首先建立一個(gè)在端口2231監(jiān)聽的ServerSocket,而后通過accept方法來阻塞程序,等待訪問。如果客戶端訪問則輸出連接成功信息,而后獲得輸出流和輸入流并且進(jìn)行簡單的包裝。隨后顯示客

9、戶端傳入的信息并向客戶端會傳信息。最后關(guān)閉兩個(gè)Socket。,搬運(yùn)工,項(xiàng)目思路:我們的目標(biāo):生成一條可以成功的箱子路徑!我們的難題:路徑生成了障礙物怎么生成?,搬運(yùn)工,成功路徑的生成:不能有死角?。〔荒芸窟叄。〔灰h(huán)?。?搬運(yùn)工,障礙物的生成(簡易難度):不能擋路?。?搬運(yùn)工,障礙物的生成(高級難度):不能擋路??!預(yù)留路徑變少??!一條路徑??!,搬運(yùn)工,實(shí)現(xiàn)難點(diǎn):判斷!判斷!判斷!判斷步驟可行!判斷死翹翹!判斷

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論