




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java的網路功能
概述
TCP/IP(TransmissionControlProtocol/InternetProtocol,傳輸控制協議/網間協議)包括五個層次:應用層、傳輸層、網路層、鏈路層、物理層
ISO/OSI網路參考模型包括七個層次:應用層、表示層、會話層、傳輸層、網路層、鏈路層、物理層
概述IP地址
網路中的硬體資源標識
是一個32位的整數,通常以“%d.%d.%d.%d”的形式表示,每個d是一個8位整數
端口號(port)標記機器的邏輯通信通道的正整數,不是物理實體一個16位的整數表達,其範圍為0~65535,其中0~1023為系統所保留
Socket(套接字)網路上運行的程式之間雙向通信鏈路的最後終結點,是TCP和UDP的基礎
概述TCP協議具有可靠性和有序性,並且以位元組流的方式發送數據,它通常被稱為流通信協議。端點與端點之間建立持續的連接當對所傳輸的數據具有時序性和可靠性等要求時,應使用TCP協議用戶數據報協議UDP一種無連接的傳輸協議
需要將傳輸的數據定義成數據報(Datagram),在數據報中指明數據所要達到的端點(Socket,主機地址和端口號),再將數據報發送出去當傳輸的數據比較簡單、對時序等無要求時應使用UDP協議Java的網路功能
按層次及使用方法分為四大類
InetAddress
面向IP層,用於標識網路上的硬體資源URL
面向應用層,可以通過URL的網路資源表達形式確定數據在網路中的位置Socket
面向傳輸層,使用的是TCP協議
Datagram
面向傳輸層,使用的是UDP協議,是另一種網路傳輸方式,它把數據的目的地記錄在數據包中,然後直接放在網路上
主要的類及例外
使用InetAddress
構造一個InetAddress實例沒有構造函數,因此不能用new來構造
publicstaticInetAddressgetByName(Stringhost);
publicstaticInetAddressgetLocalHost();publicstaticInetAddress[]getAllByName(Stringhost)
host可以是一臺機器名,也可以是一個形如“%d.%d.%d.%d”的IP地址或一個DSN功能變數名稱。
InetAddress類主要方法
publicbyte[]getAddress()獲得本對象的IP地址(存放在位元組數組中)publicStringgetHostAddress()獲得本對象的IP地址“%d.%d.%d.%d”publicStringgetHostName()獲得本對象的機器名程式12-1
演示Java如何根據功能變數名稱自動到DNS(功能變數名稱服務)上查找IP地址程式12-1
執行GetIP後,可以得到下列資訊:
www.nankai.edu.cn/3
獲取本機的IP地址
例12-1本機名稱和地址統一資源定位器
URL是UniformResourceLocator(統一資源定位器)的縮寫,它表示Internet上某一資源的地址
nternet上的資源包括HTML檔、圖象檔、聲音檔、動畫檔以及其他任何內容URL包括兩部分內容
協議名稱和資源名稱,中間用冒號隔開
Protocol:resourceName
URL的具體結構
protocol://host_name:port_number/file_name/reference
protocol: 用來指示所要獲取資源的傳輸協議, 如:http、ftp、gopher、file等host_name: 用來指示資源所在的主機port_number:
用來指示連接時所使用的通信端口號file_name: 用來指示該資源在主機的完整檔案名reference: 指示資源中的某個特定位置http://www.nankai.edu.cn:80/whitePaper/Javawhitepaper_1.htmlhttp://www.abc.com:8080/java/network.html#UDPhttp://www.neca.com/~vmis/java.htmlURL的構造方法publicURL(Stringspec)
將整個URL的名稱直接以字串的形式作為參數傳入即可
publicURL(URLcontext,Stringspec)
可以表示相對URL位置的定義
第一個參數設為null,那麼它的作用就和第一種方式相同了
URLurl1=newURL("http://www.nankai.edu.cn");
URLhost=newURL("file://export/home/Java/image/");URLaImage=newURL(host,getParameter("FILENAME"));
URL的構造方法publicURL(Stringprotocol,Stringhost,Stringfile)
publicURL(Stringprotocol,Stringhost,intport,Stringfile)
直接指定每個域的內容,而不是直接給出一個字串來表示。必須給出確定的傳輸協議、機器名稱、檔案名,或者加上端口號
比如以::80/whitePaper/Javawhitepaper_1.html為例,構造方式為:URLurl3=newURL("http","",80,"/whitePaper/Javawhitepaper_1.html");
與URL相關的異常
類URL的構造方法中都聲明拋出非運行時異常——MalformedURLException
查看示例12-1獲取URL對象屬性StringgetProtocol() 獲取傳輸協議
StringgetHost()
獲取機器名稱
StringgetPort()
獲取通信端口號
StringgetFile()
獲取資源檔案名稱
StringgetRef()
獲取參考點下麵的兩個方法將URL對象的內容以字串的形式來表示,它們的作用是相同的
StringtoString() StringtoExternalForm()
程式12-2
程式12-2中創建了一個URL對象,然後輸出其屬性
讀入URL數據
openStream()方法
讀取一個URL對象所指定的資源。與指定的URL建立連接並返回一個InputStream對象程式12-3在命令行中指定一個合理的檔案名,便可以顯示出檔的內容,其功能類似於DOS中的type命令Applet中網路通訊
在Applet中將URL和InetAddress聯合使用來得到相關的IP地址1)通過類Applet的getCodeBase()方法獲得提供它的主機的URL實例2)利用類URL的getHost()方法得到主機名3)利用類InetAddress的getByName()得到該主機的IP地址4)通過IP地址,就可以進行網路通信了,使用的協議包括TCP或是UDP。見例12-2
應用程式和URL資源之間進行交互
通過URLConnection類,可以在應用程式和URL資源之間進行交互,既可以從URL中讀取數據,也可以向URL中發送數據
openStream()只能從網路上讀取資源中的數據URLConnection中方法
publicURLConnection
openConnection() publicInputStream
getInputStream() publicOutputStream
getOutputStream()例12-3
程式12-4
socket介面在Java中,基於TCP協議實現網路通信的類有兩個:在客戶端的Socket類和在伺服器端的ServerSocket類。SeverSocket類的功能是建立一個Sever,並通過accept()方法隨時監聽客戶端的連接請求
類Socket方法構造方法Socket的輸入/輸出流管理方法
Socket(InetAddressaddress,intport);Socket(InetAddressaddress,intport,booleanstream);Socket(Stringhost,intport);Socket(Stringhost,intport,booleanstream);
stream則表示該socket是否是支持流的socket
publicInputStreamgetInputStream()publicvoidshutdownInput()publicOutputStreamgetOutputStream()publicvoidshutdownOutput()
Socket的方法
關閉Socket的方法
設置/獲取Socket數據的方法為
publicvoidclose()throwsIOException
publicInetAddressgetInetAddress()publicintgetPort()publicvoidsetSoTimeout(inttimeout)
類ServerSocket方法
類ServerSocket的構造方法
其他方法publicServerSocket(intport)publicServerSocket(intport,intbacklog):支持指定數目的連接publicServerSocket(intport,intbacklog,InetAddress
bindAddr)publicSocketaccept():等待客戶端的連接socket的基本概念
建立連接當程式需要建立網路連接時,必須有一臺機器運行一個程式,隨時等候連接,而另一端的程式則對其發出連接請求,同電話系統類似
建立連接的過程
伺服器端生成一個ServerSocket實例對象,隨時監聽客戶端的連接請求
客戶端生成一個Socket實例對象,併發出連接請求伺服器端通過accept()方法接收到客戶端的請求後,開闢一個介面與之進行連接,並生成所需的I/O數據流。通信都是通過一對InputStream和OutputStream進行的。通信結束後,兩端分別關閉對應的Socket介面
socket的基本概念連接地址當程式建立網路連接時,需要知道地址或主機名稱。另外,網路連接還需要一個端口號
端口號
在兩個程式連接之前,彼此之間必須達成一致,只有客戶端和服務器端指定端口號一致時連接才會建立網路連接模式
Socket.close()OutputStreamInputStreamServerSocket(port#)ServerSocket.accept()Socker()伺服器Socket.close()OutputStreamInputStreamSocket(host,port#)(attempttoconnect)客戶機註冊服務等待連接socket通信基本步驟
在伺服器端指定一個用來等待連接的端口號,在客戶端規定一個主機和端口號, 從而在客戶端和服務器端創建 Socket/ServerSocket實例打開連接到Soc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CCMA 0139-2022履带式吊管机维修工时定额
- T/CCAAS 002-2019企业幸福指数评价标准
- T/CAQI 58-2018污(废)水生物处理悬浮填料老化生物膜脱除技术规范
- 2024年度江苏省二级注册建筑师之法律法规经济与施工基础试题库和答案要点
- 2024年度江苏省二级造价工程师之土建建设工程计量与计价实务押题练习试题A卷含答案
- ui设计师面试题及答案
- 职高班主任工作总结示例
- T/CADBM 5-2018智能恒温休闲池
- 光纤入户维护承包协议书
- 复婚协议书和婚前协议书
- 文博考研-博物馆学名词解释
- DLT 1055-2021 火力发电厂汽轮机技术监督导则
- 安全信息管理程序
- 电工基础(中职)完整版教学课件
- (中职)《电子商务基础》第1套试卷试题及答案
- 中共中央办公厅、国务院办公厅关于进一步稳定和完善农村土地承包关系的通知中办发〔1997〕16号,1997年6
- 计算机应用基础-终结性考试试题国开要求标准
- 预制梁场验收及质量管理实施细则
- 鞋业订货单模版
- 大理石打磨工程装饰协议合同
- 模块化低压配电柜MODAN6000样本_图文
评论
0/150
提交评论