七層模式:應用層,表示層,會話層,傳輸層,網路層,鏈路層,物理層
五層模式:應用層,傳輸層,網路層,鏈路層,物理層
四層模式:應用層,傳輸層,網路層,鏈路層
http:超文字傳輸協議
ftp:檔案傳輸協議
stmp:郵件傳送協議
pop3:郵件接收協議
ssh:安全shell,用於遠端登陸
tcp:安全可靠的協議
udp:不可靠的協議
ipwindows下可以使用ipconfig
來檢視ip位址
linux下可使用ifconfig
來檢視ip位址
ip位址的作用是用來定位到網路上的另一台計算機
port埠
mysql 3306
oracle 1521
sqlserver 1433
redis 6379
tomcat 8080
apache(http的服務) 80
ftp 21
ssh 22
埠好的作用是用來標記,要訪問對方的哪個程式
tcp協議:
tcp協議的特點:tcp協議是乙個有連線,可靠的協議。所謂有連線值得是在進行tpc通訊之前,兩個通訊的主機之間首先建立一條資料通道,就好像打**交流之前,首先要讓**接通一樣。所謂可靠指的是tcp能夠保證:
1.傳送端傳送的資料不丟失
2.接收端接受的資料報的順序,會按照傳送包傳送的順序接受。
ucp協議:
socket api對 tcp,udp協議做了封裝,能夠連線到對方主機,收發資料。
伺服器端:
//與客戶端的socket連線,後面寫的埠號一般為四位數以上。
serversocket ss = new serversocket(3073);
//提示等待使用者連線
system.out.println("等待客戶連線...");
socket socket = ss.accept();//accept等待客戶連線我的伺服器,直到有客戶端連線
inputstream is = socket.getinputstream();
byte bytes = new byte[1024];
while (true)
system.out.println(new string(bytes,0,read));
}socket.close();
客戶端:
//本機ip127.0.0.1
// localhost
socket socket = new socket("127.0.0.1",3073);
socket.getoutputstream().write("hello".getbytes());
socket.close();
服務端改進:一次可以連線多個客戶
//與客戶端的socket連線,後面寫的埠號一般為四位數以上。
serversocket ss = new serversocket(3073);
//建立執行緒池,用來執行多個客戶的的請求
executorservice threadpool = executors.newcachedthreadpool();
//提示等待使用者連線
system.out.println("等待客戶連線...");
//每當連線乙個新的使用者,都得呼叫一次accept,用while迴圈。
while (true)
system.out.println(new string(bytes,0,read));
}} catch (ioexception e)
});}
客戶端改進:從鍵盤迴圈錄入資訊
//本機ip127.0.0.1
// localhost
socket socket = new socket("127.0.0.1",3073);
//建立鍵盤錄入物件
scanner sc = new scanner(system.in);
//反覆從控制台讀入內容,用while迴圈
while (true)
服務端改進2:支援多個客戶端連線, 要記錄所有的客戶端socket,並給客戶端socket傳送資訊
//與客戶端的socket連線,後面寫的埠號一般為四位數以上。
serversocket ss = new serversocket(3073);
//建立執行緒池,用來執行多個客戶的的請求
executorservice threadpool = executors.newcachedthreadpool();
//建立集合,用集合來儲存所有客戶的socket
concurrenthashmapmap = new concurrenthashmap<>();
//提示等待使用者連線
system.out.println("等待客戶連線...");
//每當連線乙個新的使用者,都得呼叫一次accept,用while迴圈。
while (true)
//獲取某個客戶端發過來的資訊內容
string s = address + " " +new string(bytes,0,read);
//遍歷map集合
for (socket socket1 : map.keyset())
}} catch (ioexception e)
});}
客戶端改進2:接受服務端傳送過來的訊息
//本機ip127.0.0.1
// localhost
socket socket = new socket("127.0.0.1",3073);
//建立新的執行緒,用來接受伺服器發來的訊息
new thread(()->
string string = new string(bytes,0, read);
system.out.println(string);
}} catch (ioexception e)
}).start();
//建立鍵盤錄入物件
scanner sc = new scanner(system.in);
//反覆從控制台讀入內容,用while迴圈
while (true)
Java中的網路程式設計,網路模型的介紹
七層模式 應用層,表示層,會話層,傳輸層,網路層,鏈路層,物理層 五層模式 應用層,傳輸層,網路層,鏈路層,物理層 四層模式 應用層,傳輸層,網路層,鏈路層 應用層 http 超文字傳輸協議 ftp 檔案傳輸協議 stmp 郵件傳送協議 pop3 郵件接收協議 ssh 安全shell,用於遠端登入 ...
IOCP模型與網路程式設計
一。前言 在老師分配任務 嘗試利用iocp模型寫出服務端和客戶端的 給我時,腦子一片空白,並不知道什麼是iocp模型,會不會是像軟體設計模式裡面的工廠模式,裝飾模式之類的那些呢?嘿嘿,不過好像是乙個挺好玩的東西,挺好奇是什麼東西來的,又是乙個新知識啦 於是,開始去尋找一大堆的資料,為這個了解做準備,...
java中的網路程式設計2
urldecoder類包含乙個decode string s,string enc 靜態方法,它可以將看上去是亂碼的特殊字元轉換成普通字串。urlencoder類包含乙個encode string s,string enc 靜態方法,它可以將普通字串轉換成aoolication x www form...