黑马程序员_java总结_网络编程基础
-----------?android培訓、java培訓、java學習型技術博客、期待與您交流!?------------
現在總結網絡編程.在網絡通信中,人們把網絡通信分為了多個層.為了方便理解,我們在學習計算機網絡的時候采用的是
一種五層協議的體系結構,而實際是TCP/IP體系的四層協議的體系結構.,而在JAVA中的網絡編程所在的是第三層的:
運輸層的協議.在這一層中有一個很重要的概念:IP 表示某一個客戶端在網絡中的地址.而它分別有兩種比較通用的協議:
TCP和UDP.而我現在要總結的網絡編程所包括的內容以下的幾個內容:
1.網絡編程的三要素
2.TCP和UDP協議表現形式
3.應用層開發.
第一點:網絡編程的三要素.
要想實現網絡編程就首先必須得明確幾點,
1.找到要與其通信的電腦在網絡中的地址(IP)
2.找到對方的電腦中的應用程序端口(端口)
3.確定傳輸數據的規則(協議)
我們把這三點稱為網絡通信的三要素:IP,端口.協議,
在應用層要想實現通信就必須經過這么幾個步驟,
IIP地址: 網絡中設備的地址.用一組4段的0-255的數字表示如:255.125.32.123,這樣的數字不容易記憶.
所以在用于經常用另一種叫做域名的形式來表示,JAVA中就專門定義了一個對象:InetAddress
端口號: 表示應用程序在電腦中的編號,用一組0-65535的數字表示.
傳輸協議: 主要就是確定通信的時候傳遞信息的規則.在傳輸層中現在主流的有兩個TCP和UDP協議.
第二點:TCP和UDP協議表現形式.
在通信的過程中傳遞的其實都是二進制 的數據,要確定不同的二進制表達的不同含意,這就是協議在作用,
UDP: 它是面向無連接的.將源和目的封裝在數據包中.每個數據包的大小限制在64K以內.它是不可靠協議.速度快.
在JAVA中,通過對象:DatagramSocket ,來建立UDP協議,數據包用對象:DatagramPacket,
要想使用,UDP協議方式的網絡通信需要分成兩個步驟:接收數據包和發送數據包
UDP數據包的發送步驟:
1.建立UDP服務.通過對象,DatagramSocket
DatagramSocket ds = new DatagramSocket(10000);//10000為要監聽的端口
2.確定要發送的數據,并封裝成包,通過對象:DatagramPacket
DatagramPacket dp = new DatagramPacket(data,data.length,InetAddress.getLocalHost(),10000);
//data為已有的字節數組,InetAddress.getLocalHost()為接收端IP地址,我這里設置成的本機的,10000為接收端端口號
3.通過建立的UDP服務把數據包發出去.調用UDP服務中的send方法.
ds.send(dp);
4.關閉資源.
UDP協議的數據包的接收步驟:
1.建立UDPSocket服務.,通常會監聽一個端口,其實就是給這個網絡應用程序定義一個數字標識.
DatagramSocket ds = new DatagramSocket(10000);//發送端如果不指定端口號則系統會生成一個默認的.
2.建立一個空的數據包對象.用于接收數據并對數據進行提取.
DatagramPacket dp = new DatagramPacket(data,data.length);//建立空的數據包,data是一個空的字節數組,
3.對過UDPSocket服務的receive方法接收數據.
ds.receive(dp);//接收數據包的信息存放到dp中,
4.通過數據包對象的特有方法,對數據包中的內容進行操作(取出).可以查閱API
5.關閉資源.
TCP: 它是有連接的,可以進行大數據通信,可靠,速度較慢.TCP又分為客戶/服務器兩部分,表示客戶端的對象是:Socket,
表示服務器的對象是:ServerSocket.要想實現TCP協議的數據通信,就需要有兩個部分:客戶端和服務端.
客戶端:
1.建立Socket服務,并指定訪問的服務器的地址及其端口號,通過對象:Socket.
2.通過Socket服務獲得連通的流對象(輸入/輸出).通過Socket對象的get方法.
3.通過流對象進行數據的傳輸,
4.關閉資源.
服務器端:
1.建立Socket服務,并指定要監聽的端口,通過:ServerSocket,如:
ServerSocket ss = new ServerSocket(10004);//10004為要監聽的端口
2.拿到請求服務的客戶端.
Socket s = ss.accept();
3.接收客戶端發送的請求,通過客戶端的輸入流.
InputStream is = s.getInputStream();//通過這個流就可以接收客戶端的請求
4.對請求做出響應,
5.關閉資源.
關于傳輸層的TCP和UDP協議的內容總結得也就是這些了.
第三點:應用層開發.
在應用層的通信是用一個URL對象來創建服務的
URL: 代表一個統一資源定位符.它是指向互聯網資源的指針.可以通過它的openConnection()連接到遠程主機上.
它返回一個URLConnection對象.
URLConnection:該對象是Socket在應用層的封裝形式.
要實現一個應用層的通信需要以下的步驟.
1.創建一個URL對象.在創建時需要指定連接的對象.
2.建立連接.調用openConnection()方法.
3.通過返回的URLConnection對象進行通信.
4.關閉資源
呃..這個URL建立的連接是基于TCP協議的.
恩,先到這吧,頭腦不是很清醒,對于UDP協議有在應用層與之對應的對象嗎?這些我還需要查閱API.
網絡編程這一塊的復習就到此為止了!
?
?
?
轉載于:https://www.cnblogs.com/Occasionally-desert/archive/2013/02/11/2910106.html
總結
以上是生活随笔為你收集整理的黑马程序员_java总结_网络编程基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQLiteHelper
- 下一篇: halcon学习笔记——机器视觉工程应用