版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
北京傳智播客教育API-網(wǎng)絡(luò)編程傳智·豹子頭本章內(nèi)容網(wǎng)絡(luò)編程概述網(wǎng)絡(luò)編程三要素UDP編程TCP編程北京傳智播客教育北京傳智播客教育網(wǎng)絡(luò)編程概述計(jì)算機(jī)網(wǎng)絡(luò)
是指將地理位置不同的具有獨(dú)立功能的多臺計(jì)算機(jī)及其外部設(shè)備,通過通信線路連接起來,在網(wǎng)絡(luò)操作系統(tǒng),網(wǎng)絡(luò)管理軟件及網(wǎng)絡(luò)通信協(xié)議的管理和協(xié)調(diào)下,實(shí)現(xiàn)資源共享和信息傳遞的計(jì)算機(jī)系統(tǒng)。網(wǎng)絡(luò)編程
就是用來實(shí)現(xiàn)網(wǎng)絡(luò)互連的不同計(jì)算機(jī)上運(yùn)行的程序間可以進(jìn)行數(shù)據(jù)交換。北京傳智播客教育網(wǎng)絡(luò)模型計(jì)算機(jī)網(wǎng)絡(luò)之間以何種規(guī)則進(jìn)行通信,就是網(wǎng)絡(luò)模型研究問題。網(wǎng)絡(luò)模型一般是指
OSI(OpenSystemInterconnection開放系統(tǒng)互連)參考模型
TCP/IP參考模型北京傳智播客教育網(wǎng)絡(luò)參考模型圖北京傳智播客教育網(wǎng)絡(luò)通信三要素IP地址:InetAddress
網(wǎng)絡(luò)中設(shè)備的標(biāo)識,不易記憶,可用主機(jī)名端口號
用于標(biāo)識進(jìn)程的邏輯地址,不同進(jìn)程的標(biāo)識傳輸協(xié)議
通訊的規(guī)則
常見協(xié)議:TCP,UDP北京傳智播客教育IP地址要想讓網(wǎng)絡(luò)中的計(jì)算機(jī)能夠互相通信,必須為每臺計(jì)算機(jī)指定一個標(biāo)識號,通過這個標(biāo)識號來指定要接受數(shù)據(jù)的計(jì)算機(jī)和識別發(fā)送的計(jì)算機(jī),在TCP/IP協(xié)議中,這個標(biāo)識號就是IP地址。那么,我們?nèi)绻@取和操作IP地址呢?
為了方便我們對IP地址的獲取和操作,java提供了一個類InetAddress
供我們使用。北京傳智播客教育InetAddress類的使用沒有構(gòu)造方法,那么如何使類提供的功能呢?要掌握的功能
獲取任意主機(jī):getByName
主機(jī)名:getHostName
主機(jī)Ip地址:getHostAddress北京傳智播客教育端口號 A:每個網(wǎng)絡(luò)程序都會至少有一個邏輯端口 B:用于標(biāo)識進(jìn)程的邏輯地址,不同進(jìn)程的標(biāo)識 C:有效端口:0~65535,其中0~1024系統(tǒng)使用或保留端口。
通過360可以查看端口號北京傳智播客教育協(xié)議UDP和TCPUDP
將數(shù)據(jù)源和目的封裝成數(shù)據(jù)報(bào)(Datagram)包中,不需要建立連接;每個數(shù)據(jù)報(bào)的大小在限制在64k;因無連接,是不可靠協(xié)議;不需要建立連接,速度快TCP
建立連接,形成傳輸數(shù)據(jù)的通道;在連接中進(jìn)行大數(shù)據(jù)量傳輸;通過三次握手完成連接,是可靠協(xié)議;必須建立連接,效率會稍低北京傳智播客教育SocketSocket套接字:網(wǎng)絡(luò)上具有唯一標(biāo)識的IP地址和端口號組合在一起才能構(gòu)成唯一能識別的標(biāo)識符套接字。Socket原理機(jī)制:通信的兩端都有Socket。網(wǎng)絡(luò)通信其實(shí)就是Socket間的通信。數(shù)據(jù)在兩個Socket間通過IO傳輸。北京傳智播客教育Socket機(jī)制圖解北京傳智播客教育UDP傳輸DatagramSocket構(gòu)造函數(shù):DatagramSocket()使用本機(jī)IP和隨機(jī)端口DatagramSocket(intport)使用本機(jī)IP和指定端口發(fā)送和接收:voidsend(DatagramPacketp)發(fā)送數(shù)據(jù)報(bào)包voidreceive(DatagramPacketp)接收數(shù)據(jù)報(bào)包DatagramPacket構(gòu)造函數(shù):DatagramPacket(byte[]buf,intlength)DatagramPacket(byte[]buf,intleng,InetAddressaddr,intp)北京傳智播客教育UDP傳輸-發(fā)送端思路1:建立udp的socket服務(wù)2:將要發(fā)送的數(shù)據(jù)封裝成數(shù)據(jù)包3:通過udp的socket服務(wù),將數(shù)據(jù)包發(fā)送出4:關(guān)閉資源北京傳智播客教育UDP傳輸-發(fā)送端代碼北京傳智播客教育UDP傳輸-接收端思路1:建立udp的socket服務(wù).2:通過receive方法接收數(shù)據(jù)3:將收到的數(shù)據(jù)存儲到數(shù)據(jù)包對象中4:通過數(shù)據(jù)包對象的功能來完成對接收到數(shù)據(jù)進(jìn)行解析.5:可以對資源進(jìn)行關(guān)閉北京傳智播客教育UDP傳輸-接收端代碼北京傳智播客教育UDP案例從鍵盤錄入數(shù)據(jù)進(jìn)行發(fā)送,如果輸入的是886那么客戶端就結(jié)束輸入數(shù)據(jù)。這個時候完全可以把發(fā)送端代碼發(fā)給大家了,我把接收端代碼開啟,大家就可以實(shí)現(xiàn)聊天了,但是,大家都要看我們的屏幕,即使我把接收端發(fā)給大家也是一樣的,如何改進(jìn)呢,使用廣播地址即可。最后,把剛才發(fā)送和接收程序分別用線程進(jìn)行封裝,完成一個UDP的聊天程序。北京傳智播客教育TCP傳輸Socket和ServerSocket建立客戶端和服務(wù)器端建立連接后,通過Socket中的IO流進(jìn)行數(shù)據(jù)的傳輸關(guān)閉socket同樣,客戶端與服務(wù)器端是兩個獨(dú)立的應(yīng)用程序。北京傳智播客教育TCP傳輸-客戶端思路1:建立客戶端的Socket服務(wù),并明確要連接的服務(wù)器。2:如果連接建立成功,就表明,已經(jīng)建立了數(shù)據(jù)傳輸?shù)耐ǖ?就可以在該通道通過IO進(jìn)行數(shù)據(jù)的讀取和寫入.該通道稱為Socket流,Socket流中既有讀取流,也有寫入流.3:通過Socket對象的方法,可以獲取這兩個流4:通過流的對象可以對數(shù)據(jù)進(jìn)行傳輸5:如果傳輸數(shù)據(jù)完畢,關(guān)閉資源北京傳智播客教育TCP傳輸-客戶端代碼北京傳智播客教育TCP傳輸-服務(wù)器端思路1:建立服務(wù)器端的socket服務(wù),需要一個端口2:服務(wù)端沒有直接流的操作,而是通過accept方法獲取客戶端對象,在通過獲取到的客戶端對象的流和客戶端進(jìn)行通信3:通過客戶端的獲取流對象的方法,讀取數(shù)據(jù)或者寫入數(shù)據(jù)4:如果服務(wù)完成,需要關(guān)閉客戶端,然后關(guān)閉服務(wù)器,但是,一般會關(guān)閉客戶端,不會關(guān)閉服務(wù)器,因?yàn)榉?wù)端是一直提供服務(wù)的北京傳智播客教育TCP傳輸-服務(wù)器端代碼北京傳智播客教育TCP傳輸案例服務(wù)器給客戶端反饋客戶端鍵盤錄入,服務(wù)器輸出到控制臺客戶端鍵盤錄入,服務(wù)器輸出文本文件客戶端文本文件,服務(wù)器輸出到控制臺客戶端文本文件,服務(wù)器輸出文本文件上傳圖片案例服務(wù)器的代碼用線程進(jìn)行封裝,這樣可以模擬一個同時接收多人上傳文件的服務(wù)器。(用循環(huán)也可以但是效率低,是單線程的程序)北京傳智播客教育TCP傳輸容易出現(xiàn)的問題客戶端連接上服務(wù)端,兩端都在等待,沒有任何數(shù)據(jù)傳輸。通過例程分析:
因?yàn)閞ead方法或者readLine方法是阻塞式。解決辦法:
自定義結(jié)束標(biāo)記
使用shutdownInput,shutdownOutput方法。URL概念
統(tǒng)一資源定位符,是指向互聯(lián)網(wǎng)資源的“指針”內(nèi)容協(xié)議(protocol):應(yīng)用層協(xié)議,例如:http、ftp主機(jī)IP(host):可以是IP或域名端口(port):http協(xié)議缺省端口是80路徑(path):主機(jī)上的資源文件路徑查詢(query):參數(shù)信息北京傳智播客教育URL構(gòu)造函數(shù):URL(Stringspec)基本獲取方法:getProtocol()getPath()getPort()getDefaultPort()getQuery()北京傳智播客教育URL獲取連接對象:URLConnectionopenConnection()與URL中封裝的地址建立聯(lián)接對象獲取輸入流:InputStreamopenStream()打開到此URL的連接并返回一個用于從該連接讀入的InputStream。北京傳智播客教育URLConnection概述:
代表應(yīng)用程序和URL之間的通信鏈接。此類的實(shí)例可用于讀取和寫入此URL引用的資源使用步驟:通過在URL上調(diào)用openConnection方法創(chuàng)建連接對象。設(shè)置請求參數(shù)和一般請求屬性。使用connect方法建立到遠(yuǎn)程對象的實(shí)際連接。遠(yuǎn)程對象變?yōu)榭捎?。遠(yuǎn)程對象的頭字段和內(nèi)容變?yōu)榭稍L問。北京傳智播客教育驗(yàn)證碼圖片BufferedImage畫布getGraphics()獲取畫筆Graphics畫筆setColor()設(shè)置顏色fillRect(intx,inty,intwidth,inthei
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度電子元器件委托運(yùn)輸及防靜電保護(hù)合同4篇
- 2025年度員工手冊修訂規(guī)定與合同執(zhí)行細(xì)則
- 2024年項(xiàng)目內(nèi)部承包具體合同
- 2025年度房貸合同編號查詢與貸前審查服務(wù)協(xié)議4篇
- 2025年新材料研發(fā)與應(yīng)用股權(quán)合作合同3篇
- 二零二五年度分公司設(shè)立與廣告宣傳服務(wù)合同4篇
- 二零二五年度工地食堂食材直供合作合同4篇
- 基于人工智能的2025年度軟件定制合同3篇
- 二零二五年度媒體資源采購與銷售合作協(xié)議4篇
- 二零二五年度船舶技術(shù)咨詢服務(wù)合同:船舶技術(shù)支持與咨詢服務(wù)協(xié)議2篇
- 阻燃材料的阻燃機(jī)理建模
- PLC控制系統(tǒng)合同(2024版)
- CJT 511-2017 鑄鐵檢查井蓋
- ISO15189培訓(xùn)測試卷及答案
- JJG(交通) 171-2021 超聲式成孔質(zhì)量檢測儀檢定規(guī)程
- 氣象衛(wèi)星技術(shù)在軍事中的應(yīng)用
- 配電工作組配電網(wǎng)集中型饋線自動化技術(shù)規(guī)范編制說明
- 2024高考物理全國乙卷押題含解析
- 介入科圍手術(shù)期護(hù)理
- 化驗(yàn)員個人自查自糾報(bào)告
- 食品良好操作規(guī)范(GMP)和食品衛(wèi)生標(biāo)準(zhǔn)操作程序(SSOP)課件
評論
0/150
提交評論