網絡端

1.synchronized 同步鎖
同步方法:
成員|靜態
簡單,可是鎖的範圍通常可能較大,效率低
同步塊
類的class:至關於鎖了類的整個信息|全部對象
this:鎖當前對象,鎖了這個對象的全部資源
資源:通常鎖不變的內容--對象地址
鎖的範圍太大效率低,鎖的範圍過小可能鎖不住
鎖必定要鎖不變的內容

死鎖:
須要避免鎖使用的過於頻繁,遇到對象沒法釋放的狀況,不然出現死鎖的問題html

2.線程通訊(生產者消費者模式)
wait():線程處於等待狀態
釋放對象的鎖,cpu的資源
notify():喚醒對方正在處於等待池中的線程
沒有對象的資源,就算是被喚醒也沒法執行,必需要獲取到對象的鎖纔能有資格執行
notifyAll()
喚醒所有
注意:使用在一個同步的環境下sql

3.IP:定義網絡上的節點(電腦,手機,pad,路由器...)..區分節點
分類:
IPV4 : 32位
IPV6 : 128位

特色的IP:
局域網內部IP:192.168.0.0~192.168.255.255
127.0.0.1 : 默認本地IP
localhost : 本地域名
DNS服務器:解析IP和域名之間的關係

InetAddress 此類表示互聯網協議 (IP) 地址。
static InetAddress getLocalHost() 返回本地主機。
static InetAddress getByName(String host) 在給定主機名的狀況下肯定主機的 IP 地址。

String getHostName() 獲取此 IP 地址的主機名。
String getHostAddress() 返回 IP 地址字符串(以文本表現形式)。

端口: InetSocketAddress編程

4. 端口port:區分軟件...
2個字節: 0~65535
注意:
1.同一的協議下端口號不能衝突
2.自定義設置端口號建議設置越大越好,通常8000網上
預留端口號:
80: http
8080:tomcat
1521:Oracle
3306:Mysql

InetSocketAddress 此類實現 IP 套接字地址(IP 地址 + 端口號)。
InetSocketAddress(String hostname, int port) 根據IP|域名+端口號構建
InetAddress getAddress() 獲取 InetAddress。
String getHostName() 獲取 hostname。
int getPort() 獲取端口號。 數組

5.URL:統一資源定位符
互聯網三大基石: http html url
url的構成:
協議
域名
端口
資源
數據
"http://www.baidu.com:80/index.html?name=zhangsan&pwd=123#a"

URL(String spec) 構建urltomcat

6-1.Socket套接字: 傳輸層爲應用層開闢的小口子,經過 Socket進行發送和接收數據
不一樣協議下的socket實現不一樣
面向Socket編程

tcp: 面向鏈接 打電話 安全 開銷大 基於3次握手 大小沒有限制 . 基於流傳輸
udp: 非面向鏈接 寫信|發短信 只管寫只管發 開銷小,效率高 不安全 大小有限制 通常不超過60k , 基於字節數組傳輸

基於udp的socket編程:
發送端
接收端
DatagramSocket 此類表示用來發送和接收數據報包的套接字。(定義發送端|接收端)
DatagramPacket數據報包(數據打包)

udp實現發送端的基本流程: 發送端和服務端是平等的
1.定義發送端 DatagramSocket(端口號) 指定發送端的端口號
2.準備數據
3.對數據打包 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
構造數據報包,用來將長度爲 length 偏移量爲 offset 的包發送到指定主機上的指定端口號。
4.發送void send(DatagramPacket p)
5.關閉 void close() 關閉此數據報套接字。 安全

6-2.接收端基本流程:
1.定義接收端 DatagramSocket(int port)
2.準備字節數組
3.準備包裹用來接收數據 DatagramPacket(byte[] buf, int length)
4.接收
5.從包裹中獲取數據
byte[] getData()
返回數據緩衝區。
int getLength()
返回將要發送或接收到的數據的長度。
6.關閉服務器

7-1.Socket 此類實現客戶端套接字
客戶端
1.定義客戶端 Socket(String host, int port) 建立一個流套接字並將其鏈接到指定主機上的指定端口號。
2.IO操做
輸出流OutputStream getOutputStream() 返回此套接字的輸出流。
3.刷出
4.關閉
7-2.ServerSocket 此類實現服務器套接字。
TCP服務端
1.定義服務端 ServerSocket(int port) 建立綁定到特定端口的服務器套接字。
2.阻塞式監聽 一個客戶端鏈接成功,就是一個socket
3.io操做
4.關閉網絡

8-1.TCP實現文件上傳客戶端 :
1.定義客戶端 Socket(String host, int port) 建立一個流套接字並將其鏈接到指定主機上的指定端口號。
2.IO操做 先從文件中讀入數據-->寫出數據
new FileInputStream("");
輸出流OutputStream getOutputStream() 返回此套接字的輸出流。
3.刷出
4.關閉
8-2.TCP實現文件上傳服務端:
1.定義服務端 ServerSocket(int port) 建立綁定到特定端口的服務器套接字。
2.阻塞式監聽 一個客戶端鏈接成功,就是一個socket
3.io操做 :從客戶端讀入數據 --->文件輸出流 寫出文件中
4.刷出
5.關閉socket

相關文章
相關標籤/搜索