網路編程
概述
在網路通信協議下,不同計算機上運行的程式,可以進行資料傳輸
三要素
Ip地址
設備在網路中的地址是唯一標識
常用命令
ipconfig 常看本機IP地址
ping 檢查網路是否連通
127.0.0.1 :表示本機IP,一般用來測驗用的
埠
應用程式在設備中唯一的標識; 一個埠只能被一個應用程式使用
協議
資料在網路中傳輸的規則,常見的協議有UDP和TCP協議
UDP :不用連接;速度快,不安全,易丟失數字據
三種通信 :單播,組播,廣播
TCP : 需要連接;速度慢,安全
InterAddress
作用:表示此類的IP地址
InterAddress.getByName:確定主機名,也可以是IP地址
getHostName : 獲取主機名
getHostAddress : 回傳文本顯示中的IP地址,以字串形式
TCP通訊原理
是一個可靠的網路協議,在通訊兩端建立一個Socke物件
TCP
客戶端
1.創建Socke地址,埠;
2.寫入字符(getOutPutStream)后面必須接.getBytes方法
3.釋放
服務端
1.創建ServerSocke,后面接埠號
2.阻塞:客戶端不運行,服務端不接受,呼叫accept
3.讀入,getInputStream
4.回圈讀,!=-1
5.釋放
三次握手
1.就是客戶端向服務器發送一個連接請求,等待它確定;
2. 服務器收到了,給了它一個回應
3. 兩邊確定連接,連接成功
四次揮手
前提:兩邊是正在相互連接狀態
1.就是客戶端向服務器發送一個取消連接請求,等待它確定;
2. 服務器收到了,給了它一個回應
3. 服務器向客戶端發出確認取消資訊
4.客戶端確定,連接取消
服務器優化
弊端
1:一次只能接受一次
2 :第二次上傳的時候會把第一次檔案給覆寫掉
3 :使用回圈無法跟多個客戶端進行通訊
4 :使用多執行緒雖然可以讓服務器處理多個客戶端請求,但是資源消耗太大
優化
1:直接死回圈
2 :UUID.randomUUID方法生成隨機的檔案名
3 :開啟多執行緒(比較麻煩)
4 :加入執行緒池
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282255.html
標籤:其他
