黑馬程序員-java基礎_網絡基本

 

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a>、期待與您交流! ----------

 

網絡編程:

網絡通訊要素:

IP地址(InetAddress對象),端口號,傳輸協議(常用的是TCP、UDP)。

UDP:(聊天、網絡視頻會議……就是採用UDP,數據不重要只求速度快)

將數據及源和目的封裝成數據包中,不需要建立連接

每個數據報的大小在限制在64K內

因是無連接的,所以是不可靠協議

不需要連接,速度快

TCP:

建立連接,形成傳輸數據的通道

在連接中進行大數據量傳輸

通過三次握手完成連接,是可靠協議

必須建立連接,效率會稍低

Socket:

它是爲網絡服務提供的一種機制,

網絡的兩端都要有Socket

網絡通信其實就是Socket間的通信

數據在兩個Socket間通過IO傳輸

UDP:

創建發送UDP的流程:
1、建立UDPSocket服務通過DatagramSocket對象
2、提供數據,並將數據封裝到數據包中
(DatagramPacket(byte[] buf,int length,InetAddress address,int port))
3、通過Socket服務的發送功能,將數據發送出去通過send()方法
4、關閉資源。close()方法
創建接收UDP的流程:
1、定義UDPSocket服務通過DatagramSocket對象

通常會監聽一個端口。其實就是給這個接收網絡應用程序定義數據標識。

2、定義一個數據包(DatagramPacket(byte[] buf,int length))
3、通過socket服務的receive()方法將收到的數據存入已定義好的數據包中
4、通過數據包對象的特有功能,將這些不同的數據取出。打印在控制檯上
5、關閉資源
Socket與線程結合就能完成聊天小程序。

TCP:
TCP傳輸採用Socket(客戶端對象)和ServerSocket(服務端對象)

Socket端:
1、創建客戶端的Socket服務,指定目的主機的端口
Socket socket=new Socket("172.18.70.136",8888);
2、爲了發送數據,應該獲取socket流中的輸出流

OutputStream out=socket.getOutputStream();
ServerSocket端:

1、創建服務器端的Socket服務,並監聽一個端口。ServerSocket();
2、獲取連接過來的客戶端對象,通過ServerSocket的accept方法,沒有連接就會等,這個方法是阻塞式的。
3、客戶端如果發過來數據,服務端要使用對應的客戶端對象 ,並獲取到該客戶端對象的讀取流來該讀取發過來的數據,並打印在控制檯。
4、關閉服務端(可選)

 

發佈了27 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章