java網路專題

2021-09-02 05:25:53 字數 2272 閱讀 8416

第二次的部落格,也沒有什麼感想,就覺得老師說的很有道理,如果自己沒有什麼學習方法,那就每天都敲**,肯定會有收穫

tcp/ip協議棧 棧:一組協議

tcp 網路傳輸控制協議

ip 網路位址協議

應用層:訪問的網頁 http協議(超文字傳輸協議)

遠端登入主機 telnet協議 ssh協議(保證安全)

傳輸層:打包和確定目的應用程式

tcp(保障資料的可靠有序),udp(不保障)

http 占用80 埠

telnet 22

ssh 22

mysql 3306

網際網路層:ip協議

網路訪問層:

傳送:應用層->傳輸層—>網際網路層->網路訪問層

接收:網路訪問層—>網際網路層—>傳輸層—>應用層

連線:telnet 對方ip 埠號

傳送請求:http協議

請求:get /time http/1.1

host:localhost

回車回車

socket 端點 底層是tcp協議

1.新建socket物件

scocket(host代表主機,port:埠號)//三次握手

客戶端->伺服器

伺服器->客戶端

客戶端->伺服器

2.傳送資料用輸出流

outputstream

3.接收響應用輸入流

inputstream

用bufferedreader

應用層url 統一資源定位符

建立new url(http://ip位址:埠/資源位址)

httpurlconnection connection =url().openconnection();//建立連線,傳送get請求

connection.getinputstream//拿到伺服器返回的結果

3.伺服器端

3.1阻塞io bio

serversocket 伺服器的端點

new serversocker(埠號);//每個程式只能占用乙個埠,自己的程式用4位以上的埠

.accept();//等待,直到客戶端連線為止

127.0.0.1<==>localhost

new thread(new runnable

}).start();

阻塞io的特點,乙個socket執行io讀寫操作會阻塞其它io的讀寫

乙個執行緒內io的讀寫是序列的,可以用多執行緒的方法來解決,建議使用執行緒池而不是自己手動建立執行緒

執行緒池executorservice service=new threadpoolexecutor(corepoolsize,maxpoolsize,keepalivetime,timeunit,blockingqueue)

corepoolsize 核心執行緒數

maxpoolsize 最大執行緒數:核心執行緒數+救急執行緒數<=最大執行緒數

keepalivetime保持時間 如果乙個執行緒閒暇的時間超過了保持時間,那就把它**,但不會少於核心執行緒數

timeunit時間單位

blockingqueue阻塞佇列 當任務數超過核心執行緒數後,就把任務放入阻塞佇列排隊執行(有界 無界)

3.2併發量再高怎麼辦

非阻塞io nio, nonblocking io,new io

執行緒(多路)復用

乙個執行緒可以同時處理多個io操作,減少了執行緒的數量,能夠應付更高的併發

web伺服器 tomcat 熊貓(bio,nio)

netty 伺服器 封裝了nio技術,併發能力很高

spark 分布式計算框架

redis 快取伺服器(c語言)單執行緒 qps 10萬

#3.3

new thread(()—>{}).strat();

引數部分 特殊符號 **體

(形參) ->

針對單方法的介面,才能使用lambda表示式簡化

當**體部分只有一條語句,{}可省略,且不能加分號

引數部分可以省略型別

如果**體部分只有一條語句,那麼它還可以充當返回值,省掉return

concurrenthashmap

socket 伺服器例項

如下的test是乙個伺服器程式

網路框架專題

socket osi和tcp ip模型 ip mac和埠號 面向連線和無連線有什麼區別 http協議介紹 httpclient簡介 httpclient的基本使用 closeablehttpclient的個性化配置 請求的個性化配置 如何解析響應內容 http 狀態管理 http認證 httpcli...

網路流專題

模擬賽被網路流打爆了。題目來自於 pb 的網路流專題。左邊房子右邊菜,搞出最大流就行了。棋盤黑白染色,可選的方塊連邊,搞出最大流就行了。行列為點,格仔為邊。如果有完美匹配,就可以。否則不行。每個點最多對應兩個 t,所以這是乙個二分圖最大匹配。字典序最小,只需要從後往前匈牙利就行了。把圖建出來,是二分...

網路程式設計專題總結

一 確認網路環境3g wifi 1.新增源 檔案和framework 開發web等網路應用程式的時候,需要確認網路環境,連線情況等資訊。如果沒有處理它們,是不會通過 使用reachability 只須將該例程中的 reachability.h 和 reachability.m 拷貝到你的工程中。如下...