網路模型與Java中的網路程式設計的一些介紹

2021-08-23 14:36:26 字數 3364 閱讀 2758

七層模式:應用層,表示層,會話層,傳輸層,網路層,鏈路層,物理層

五層模式:應用層,傳輸層,網路層,鏈路層,物理層

四層模式:應用層,傳輸層,網路層,鏈路層

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...