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()
※關於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() 方法