網路程式設計基礎

2021-08-29 13:50:02 字數 3258 閱讀 3299

網路通訊之socket通訊:tcp/udp

udp:

伺服器端--接收資料

例項:實現隨時發隨時收---使用udp

tcp應用層

與其它計算機進行通訊的乙個應用,它是對應應用程式的通訊服務的。

例如,乙個沒有通訊功能的字處理程式就不能執行通訊的**,

從事字處理工作的程式設計師也不關心osi的第7層。但是,如果新增了乙個

傳輸檔案的選項,那麼字處理器的程式設計師就需要實現osi的第7層。

示例:telnet,http,ftp,nfs,smtp等。

表示層這一層的主要功能是定義資料格式及加密。例如,ftp允許你選擇以二進位制

或ascii格式傳輸。如果選擇二進位制,那麼傳送方和接收方不改變檔案的內容。

如果選擇ascii格式,傳送方將把文字從傳送方的字符集轉換成標準的ascii後

傳送資料。在接收方將標準的ascii轉換成接收方計算機的字符集。示例:加密,ascii等。

會話層它定義了如何開始、控制和結束乙個會話,包括對多個雙向訊息的控制和管理,

以便在只完成連續訊息的一部分時可以通知應用,從而使表示層看到的資料是連續的,

在某些情況下,如果表示層收到了所有的資料,則用資料代表表示層。示例:rpc,sql等。

傳輸層這層的功能包括是否選擇差錯恢復協議還是無差錯恢復協議,及在同一主機上對不同

應用的資料流的輸入進行復用,還包括對收到的順序不對的資料報的重新排序功能。

示例:tcp,udp,spx。

網路層這層對端到端的包傳輸進行定義,它定義了能夠標識所有結點的邏輯位址,還定義了

路由實現的方式和學習的方式。為了適應最大傳輸單元長度小於包長度的傳輸介質,

網路層還定義了如何將乙個包分解成更小的包的分段方法。示例:ip,ipx等。

資料鏈路層

它定義了在單個鏈路上如何傳輸資料。這些協議與被討論的各種介質有關。示例:atm,fddi等。

物理層osi的物理層規範是有關傳輸介質的特性標準,這些規範通常也參考了其他組織制定的標準。

連線頭、幀、幀的使用、電流、編碼及光調製等都屬於各種物理層規範中的內容。

物理層常用多個規範完成對所有細節的定義。示例:rj45,802.3等

inetaddress

public

static

void

main

(string[

] args)

throws unknownhostexception

tcpudp

1建立在連線的基礎上

建立在非連線的基礎上

2安全性更高

安全性低

3傳輸速度低

速度高4

適合傳輸資料量大的資料

適合資料量小的資料

伺服器端:!=主機

埠號:同一臺主機上的每乙個伺服器都擁有自己的埠號,取值範圍(0,65535),常用的埠:80,8080

注意點:

要保證客戶端和伺服器端的埠號一致

要保證同一臺主機上的不同伺服器端口號不同

客戶端實現過程:

1. 建立udp通訊的物件–socket物件.對應的類是datagramsocket(用於udp通訊資料的傳送與接收)

2. 資料的封裝–裝包(打包),datagrampacket(資料報,包括相關的屬性,資料等)

3. 傳送–呼叫send方法

4. 關閉相關資源

**

public

class

demo7

}

伺服器端–接收資料

建立socket物件,繫結埠

建立包物件,建立空陣列,準備接收傳過來的資料

接收資料

關閉資源

**

public

class

demo8

}

例項:實現隨時發隨時收—使用udp

客戶端

public

static

void

main

(string[

] args)

throws ioexception }

socket.

close()

;}

伺服器端
public

static

void

main

(string[

] args)

throws ioexception }

socket.

close()

;}

客戶端
public

static

void

main

(string[

] args)

throws unknownhostexception, ioexception

//5.關閉資源

socket.

close()

;}

伺服器端
public

static

void

main

(string[

] args)

throws ioexception

//完成資料的回傳

outputstream outputstream = socket.

getoutputstream()

; outputstream.

write

("你好,bigdata1715"

.getbytes()

);//5.關閉資源

serversocket.

close()

;}

tcp例項:實現大小寫轉換

客戶端

public

static

void

main

(string[

] args)

throws unknownhostexception, ioexception }

socket.

close()

;}

伺服器端
public

static

void

main

(string[

] args)

throws ioexception }

serversocket.

close()

;}

網路程式設計 網路基礎

1.物理層 提供建立 維護和拆除物理鏈路所需的機械 電氣 功能和規程的特性 提供有關在傳輸介質上傳輸非結構的位流及物理鏈路故障檢測指示。在這一層,資料還沒有被組織,僅作為原始的位流或電氣電壓處理,單位是位元。常用協議 eia tia rs 232 eia tia rs 449 v.35 rj 45 ...

linux網路程式設計基礎 網路基礎

客戶機 client 伺服器 server 模式。需要在通訊兩端各自部署客戶機和伺服器來完成資料通訊。瀏覽器 browser 伺服器 server 模式。只需在一端部署伺服器,而另外一端使用每台pc都預設配置的瀏覽器即可完成資料的傳輸。c s模式 優點缺點 資料快取本地,效率高 工作量大,開發周期更...

網路程式設計基礎

1 什麼是計算機網路 2 網路的型別 3 網路傳輸的介質 4 網路傳輸的資料格式 5 網路裝置 hub 分流裝置,把網路流量一分多,是根據實際情況平均分配的方法,是即插即用的裝置 中繼器 網路訊號傳輸一段距離後,訊號衰減會變弱,需要通過中繼器把訊號還原和再生 網橋 連線2個網路的裝置,這2個網路可以...