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