當前位置:
首頁 > 最新 > Java-網路編程

Java-網路編程

OSI模型:是抽象的,介面

TCP/IP模型:是實現類

OSI7層模型:(從下往上)物理層,數據鏈路層,網路層,傳輸層,會話層,表示層,應用層

TCP/IP4層模型:(從下往上)物理層,網路層,傳輸層,應用層

IP地址:用於唯一識別連接到Internet上的計算機

地址表示方式

IPv4: (32位)點分10進位表示方式,四個整數用點分開,每個十進位數字代表一個8 bits整數,如192.168.123.1

IPv6: (128位)點分16進位表示方式,八個整數用點分開,每個十六進位數字代表一個16bits整數,如CDCD:910A:2222:5498:8475:1111:3900:2020

域名:伺服器的地址(名稱)

ping www.baidu.com 獲取百度的IP地址

sina.com.cn taobao.com DNS-->ARP

DNS:Domain Naming Service Sina.com-->202.100.1.0

ARP:Address Reverse Protocol 202.100.1.0 -->MAC

MAC:計算機物理地址

DNS:域名解析,將域名解析為IP地址

ARP:地址解析協議,將IP地址解析為域名地址

本地IP

127.0.0.1 等同於 localhost

TCP協議簡介

TCP協議是一個有連接、可靠的協議

非常類似與打電話,兩端建立長連接,相互傳遞信息

TCP編程

java.net.Socket

java.net.ServerSocket

伺服器端:

創建ServerSocket對象(並綁定埠)

調用accept方法,等待來自客戶端的連接

調用getInputStream/getOutputStream方法,進行I/O

關閉Socket(Socket:套接字 即 IP地址+埠號,表示是一個服務service)

客戶端:

創建Socket對象,並連接伺服器

調用getInputStream/getOutputStream方法,進行I/O

關閉Socket

TCP:TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接的、可靠的、

基於位元組流的傳輸層通信協議。在OSI模型中,它完成第四層傳輸層所指定的功能,

用戶數據報協議(UDP)是同一層內另一個重要的傳輸協議。

在網際網路協議族(Internet protocol suite)中,TCP層是位於IP層之上,應用層之下的中間層。

不同主機的應用層之間經常需要可靠的、像管道一樣的連接,但是IP層不提供這樣的流機制,

而是提供不可靠的包交換。

UDP:是OSI參考模型中一種無連接的傳輸層協議,它主要用於不要求分組順序到達的傳輸中,分組傳輸順序

的檢查與排序由應用層完成,提供面向事務的簡單不可靠信息傳送服務。

UDP 協議基本上是IP協議與上層協議的介面。

UDP協議適用埠分別運行在同一台設備上的多個應用程序。

UDP提供了無連接通信,且不對傳送數據包進行可靠性保證,適合於一次傳輸少量數據,

UDP傳輸的可靠性由應用層負責。常用的UDP埠號有:

應用協議 埠號

DNS 53

TFTP 69

SNMP 161

UDP:報文沒有可靠性保證、順序保證和流量控制欄位等,可靠性較差。但是正因為UDP協議的控制選項較少,

在數據傳輸過程中延遲小、數據傳輸效率高,適合對可靠性要求不高的應用程序,或者可以保障可靠性的應用程序,如DNS、TFTP、SNMP等。

埠範圍:0-{} 0-1024 系統埠號

UDP協議簡介

UDP是一個無連接,不可靠的協議。即:數據的發送方只負責將數據發送出去,數據的接受方只負責接收數據。發送方和接收方不會相互確認數據的傳輸是否成功。

UDP編程:

java.net.DatagramSocket

java.net.DatagramPacket

UDP編程的核心思路

伺服器 DatagramSocket socket = new DatagramSocket(9000)

客戶端 DatagramSocket socket = new DatagramSocket()

DatagramPacket

DatagramPacket(byte[] buf, int length) 接收端

DatagramPacket(byte[] buf, int length, SoketAddress,int port) 發送端

getAddress()/getSockAddress()/getPort()/getLength()

setAddress()/setSockAddress()/setPort()/setLength()

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java學習吧 的精彩文章:

關於JDBC的連接深入了解
掃碼登錄的安全性分析
Java 介面——面向對象的精髓
簡單的java的發牌洗牌小程序

TAG:java學習吧 |

您可能感興趣

Python網路編程——進程
Python之網路編程
網路編程-arp協議
Python 網路編程基礎入門
Python學習之網路編程
Kotlin 編程
Firebug編程
Eclipse 編程
Redis 編程
XPath 編程
VBScript 編程
Linux 編程vi/vim
XML Schema 編程
React 編程的Refs
Racket編程指南
Highcharts 編程
Perl 編程
ionic 編程Range
XPath編程 Examples
JSON編程的parse() 方法