資源描述:
《Java就業(yè)培訓教程.docx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Java就業(yè)培訓教程????有人說,20世紀最偉大的發(fā)明并不是計算機,而是計算機網(wǎng)絡(luò)。還有人說,如果你買了計算機而沒有聯(lián)網(wǎng),就等于買了電話機卻沒有接電話線一樣。?計算機網(wǎng)絡(luò)就是實現(xiàn)了多個計算機互聯(lián)的系統(tǒng),相互連接的計算機之間彼此能夠進行數(shù)據(jù)交換。正如城市道路系統(tǒng)總是伴隨著城市交通規(guī)則來使用的道理,計算機網(wǎng)絡(luò)總是伴隨著計算機網(wǎng)絡(luò)協(xié)議一起使用的。網(wǎng)絡(luò)協(xié)議規(guī)定了計算機之間連接的物理、機械(網(wǎng)線與網(wǎng)卡的連接規(guī)則)、電氣(有效的電平范圍)等特性以及計算機之間的相互尋址規(guī)則、數(shù)據(jù)發(fā)送沖突的解決、長的數(shù)據(jù)如何分段傳送與
2、接收等。就象不同的城市可能有不同的交通規(guī)則一樣,目前的網(wǎng)絡(luò)協(xié)議也有多種,其中,TCP/IP協(xié)議就是一個非常實用的網(wǎng)絡(luò)協(xié)議,它是Internet所遵循的協(xié)議,是一個“既成事實”的標準,已廣為人知并且廣泛應用在大多數(shù)操作系統(tǒng)上,也可用于大多數(shù)局域網(wǎng)和廣域網(wǎng)上。?網(wǎng)絡(luò)應用程序,就是在已實現(xiàn)了網(wǎng)絡(luò)互聯(lián)的不同的計算機上運行的程序,這些程序相互之間可以交換數(shù)據(jù)。編寫網(wǎng)絡(luò)應用程序,首先必須明確網(wǎng)絡(luò)程序所要使用的網(wǎng)絡(luò)協(xié)議,TCP/IP是網(wǎng)絡(luò)應用程序的首選協(xié)議,大多數(shù)網(wǎng)絡(luò)程序都是以這個協(xié)議為基礎(chǔ),本章關(guān)于網(wǎng)絡(luò)程序編寫的講解
3、,都是基于TCP/IP協(xié)議的。?要想讓網(wǎng)絡(luò)中的計算機能夠互相通信,必須為每臺計算機指定一個標識號,通過這個標識號來指定要接收數(shù)據(jù)的計算機和識別發(fā)送數(shù)據(jù)的計算機,在TCP/IP協(xié)議中,這個標識號就是IP地址,目前IP地址在計算機中用四個字節(jié),也就是32位的二進制數(shù)來表示,稱為Ipv4。為了便于記憶和使用,我們通常取用每個字節(jié)的十進制數(shù),并且每個字節(jié)之間用圓點隔開的文本格式來表示IP地址,如192.168.8.1。隨著計算機網(wǎng)絡(luò)規(guī)模的不斷擴大,用四個字節(jié)來表示IP地址已越來越不敷使用,人們正在實驗和定制使用1
4、6個字節(jié)表示IP地址的格式,這就是Ipv6。由于Ipv6還沒有投入使用,現(xiàn)在網(wǎng)絡(luò)上用的還都是Ipv4,我們這里的知識也只圍繞著Ipv4來展開。?因為一臺計算機上可同時運行多個網(wǎng)絡(luò)程序,IP地址只能保證把數(shù)據(jù)送到該計算機,但不能保證把這些數(shù)據(jù)交給哪個網(wǎng)絡(luò)程序,因此,每個被發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)包的頭部都包含有一個稱為"端口"的部分,它是一個整數(shù),用于表示該數(shù)據(jù)幀交給哪個應用程序來處理。我們還必須為網(wǎng)絡(luò)程序指定一個端口號,不同的應用程序接收不同端口上的數(shù)據(jù),同一臺計算機上不能有兩個使用同一端口的程序運行。端口數(shù)范圍為
5、0-65535之間。0-1023之間的端口數(shù)是用于一些知名的網(wǎng)絡(luò)服務(wù)和應用,用戶的普通網(wǎng)絡(luò)應用程序應該使用1024以上的端口數(shù),從而避免端口號已被另一個應用或系統(tǒng)服務(wù)所用。如果我們的一個網(wǎng)絡(luò)程序指定了自己所用的端口號為3150,那么其他網(wǎng)絡(luò)程序發(fā)送給這個網(wǎng)絡(luò)程序的數(shù)據(jù)包中必須指明接收程序的端口號為3150,當數(shù)據(jù)到達第一個網(wǎng)絡(luò)程序所在的計算機后,驅(qū)動程序根據(jù)數(shù)據(jù)包中的3150這個端口號,就知道要將這個數(shù)據(jù)包交給這個網(wǎng)絡(luò)程序。?在TCP/IP協(xié)議棧中,有兩個高級協(xié)議是我們網(wǎng)絡(luò)應用程序編寫者應該了解的,它們是
6、"傳輸控制協(xié)議"(Transmission?Control?Protocol,簡稱TCP)和"用戶數(shù)據(jù)報協(xié)議"(User?Datagram?Protocol,簡稱UDP)。?TCP是面向連接的通信協(xié)議,TCP提供兩臺計算機之間的可靠無錯的數(shù)據(jù)傳輸。應用程序利用TCP進行通信時,源和目標之間會建立一個虛擬連接。這個連接一旦建立,兩臺計算機之間就可以把數(shù)據(jù)當作一個雙向字節(jié)流進行交換。就像我們打電話一樣,互相能聽到對方的說話,也知道對方的回應是什么。?UDP是無連接通信協(xié)議,UDP不保證可靠數(shù)據(jù)的傳輸,但能夠向
7、若干個目標發(fā)送數(shù)據(jù),接收發(fā)自若干個源的數(shù)據(jù)。簡單地說,如果一個主機向另外一臺主機發(fā)送數(shù)據(jù),這一數(shù)據(jù)就會立即發(fā)出,而不管另外一臺主機是否已準備接收數(shù)據(jù)。如果另外一臺主機收到了數(shù)據(jù),它不會確認收到與否。?????就像傳呼臺給用戶發(fā)信息一樣,傳呼臺并不知道你是否能收到信息(為了避免丟失用戶信息,他們常常將一條信息發(fā)送兩遍)。??大家不要生硬和孤立地去理解什么是Socket,就象我們不要讓一個從來沒有見到過大米與米飯的人去理解什么是“rice”一樣的道理,任何一個事物和概念都得有個代名詞,大家只有先理解和事物和概
8、念本身,就自然理解了它的代名詞。同樣Socket是網(wǎng)絡(luò)驅(qū)動層提供給應用程序編程的接口和一種機制,大家先掌握和理解了這個機制,自然就明白了什么是Socket。?大家可以認為Socket是應用程序創(chuàng)建的一個港口碼頭,應用程序只要把裝著貨物的集裝箱(在程序中就是要通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù))放到港口碼頭上,就算完成了貨物的運送,剩下來的工作就由貨運公司去處理了(在計算機中由驅(qū)動程序來充當貨運公司)。?對接收方來說,應用程序也要創(chuàng)建的一個港口