網(wǎng)絡(luò)編程是什么

網(wǎng)絡(luò)編程的本質(zhì)是兩個(gè)設(shè)備之間的數(shù)據(jù)交換,當(dāng)然,在計(jì)算機(jī)網(wǎng)絡(luò)中,設(shè)備主要指計(jì)算機(jī)。數(shù)據(jù)傳遞本身沒(méi)有多大的難度,不就是把一個(gè)設(shè)備中的數(shù)據(jù)發(fā)送給兩外一個(gè)設(shè)備,然后接受另外一個(gè)設(shè)備反饋的數(shù)據(jù)。

何為Socket

網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)連接的一端稱(chēng)為一個(gè)socket。建立網(wǎng)絡(luò)通信連接至少要一對(duì)端口號(hào)(socket)。socket本質(zhì)是編程接口(API),對(duì)TCP/IP的封裝,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開(kāi)發(fā)所用的接口,這就是Socket編程接口;HTTP是轎車(chē),提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動(dòng)機(jī),提供了網(wǎng)絡(luò)通信的能力。

Socket編程

一個(gè)是ServerSocket,一個(gè)是Socket。服務(wù)端和客戶(hù)端之間通過(guò)Socket建立連接,之后它們就可以進(jìn)行通信了。首先ServerSocket將在服務(wù)端監(jiān)聽(tīng)某個(gè)端口,當(dāng)發(fā)現(xiàn)客戶(hù)端有Socket來(lái)試圖連接它時(shí),它會(huì)accept該Socket的連接請(qǐng)求,同時(shí)在服務(wù)端建立一個(gè)對(duì)應(yīng)的Socket與之進(jìn)行通信。這樣就有兩個(gè)Socket了,客戶(hù)端和服務(wù)端各一個(gè)。
對(duì)于Socket之間的通信其實(shí)很簡(jiǎn)單,服務(wù)端往Socket的輸出流里面寫(xiě)東西,客戶(hù)端就可以通過(guò)Socket的輸入流讀取對(duì)應(yīng)的內(nèi)容。Socket與Socket之間是雙向連通的,所以客戶(hù)端也可以往對(duì)應(yīng)的Socket輸出流里面寫(xiě)東西,然后服務(wù)端對(duì)應(yīng)的Socket的輸入流就可以讀出對(duì)應(yīng)的內(nèi)容。
萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

下面是一個(gè)例子,客戶(hù)端讀寫(xiě)和服務(wù)端讀寫(xiě)

網(wǎng)友評(píng)論