學(xué)習(xí)目的
初步了解網(wǎng)絡(luò)編程的概念和簡(jiǎn)單使用
學(xué)習(xí)過程
大致閱讀了一下關(guān)于網(wǎng)絡(luò)編程的知識(shí)筑累,進(jìn)而以實(shí)戰(zhàn)來反復(fù)練習(xí)所掌握的具體編程內(nèi)容。
技術(shù)
1.基礎(chǔ)知識(shí):
1)網(wǎng)絡(luò)編程:在兩臺(tái)不同的計(jì)算機(jī)之間傳遞數(shù)據(jù)
舉例:qq聊天叙淌、新聞app(刷新界面就有數(shù)據(jù))打開瀏覽器(網(wǎng)頁 www.baidu.com)
2)客戶端與服務(wù)器端
1>客戶端:手機(jī)app、瀏覽器愁铺、qq ? --->(操作數(shù)據(jù)平臺(tái))
2>服務(wù)器端:存儲(chǔ)/處理數(shù)據(jù) --->(數(shù)據(jù)集散平臺(tái))
3)談?wù)刄RL:url(URL)地址:統(tǒng)一的資源定位
用一個(gè)例子來說明:http://www.baidu.com/search?code=android&type=1
-》http/https:傳輸協(xié)議 Tcp/IP
-》www.baidu.com:域名->表示一臺(tái)網(wǎng)絡(luò)中的電腦
-》ipv4 ipv6 地址:唯一標(biāo)識(shí)一臺(tái)網(wǎng)絡(luò)中的計(jì)算機(jī)
-》32位:四個(gè)部分每個(gè)是八個(gè)字節(jié)? 10.129.26.215
-》DNS服務(wù)器:域名解析 將www.baidu.com類型的域名解析為對(duì)應(yīng)的ip地址
-》search 對(duì)應(yīng)的后臺(tái)程序文件 用 php java jsp 來進(jìn)行后臺(tái)開發(fā)
-》“?”表示運(yùn)行這個(gè)程序需要傳遞的參數(shù)
-》code = android code是服務(wù)器端規(guī)定的字段
-》“&” 如果有多個(gè)參數(shù)使用&符號(hào)鏈接
4)電腦鹰霍,你的名字!
1>ip地址:唯一標(biāo)識(shí)某一臺(tái)電腦
2>端口號(hào):唯一標(biāo)識(shí)這臺(tái)電腦上的某一個(gè)程序(進(jìn)程)
5)數(shù)傳輸協(xié)議:TCP/IP協(xié)議
1>TCP:面向鏈接的 安全的
2>UDP:面向無連接的 不安全 但是快
實(shí)現(xiàn)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸:Socket實(shí)現(xiàn) -> 套接字
-》Socket:客戶端
-》ServerSocket:服務(wù)器端
2.實(shí)戰(zhàn):模擬聊天器
我們先看看效果:
這個(gè)程序模擬的是客戶端和服務(wù)器之間的簡(jiǎn)單“聊天”茵乱,首先從客戶端終端鍵入“服務(wù)器茂洒,你好哇!我是客戶端瓶竭!”督勺,服務(wù)器接收到,并在服務(wù)器終端打印出來斤贰;服務(wù)器端鍵入數(shù)據(jù)智哀,客戶端接收也是如此過程。
具體代碼如下:
服務(wù)器端的代碼荧恍,首先創(chuàng)建socket套接字瓷叫,與客戶端相連;然后在主線程中實(shí)現(xiàn)“通過終端向客戶端寫入數(shù)據(jù)”功能;在子線程中實(shí)現(xiàn)“從客戶端讀入數(shù)據(jù)”功能赞辩。
客戶端代碼的實(shí)現(xiàn)類似于服務(wù)器端,不過上圖代碼箭頭所示是向服務(wù)器寫入數(shù)據(jù)中的輸出流授艰,這和服務(wù)器端中的實(shí)現(xiàn)不同(其實(shí)也可以相同)辨嗽。我發(fā)現(xiàn)如此用,在寫出數(shù)據(jù)時(shí)就得像上圖圈中所示淮腾,三句并用才能實(shí)現(xiàn)功能了糟需,僅作提醒。因?yàn)檫@兩者區(qū)別在于:在BufferedWriter中谷朝,write()要輸出換行標(biāo)識(shí)洲押,要調(diào)用flush()刷新緩沖區(qū);而PrintStream直接調(diào)用輸出方法即可圆凰。
感悟
經(jīng)過對(duì)網(wǎng)絡(luò)編程的簡(jiǎn)單學(xué)習(xí)杈帐,我覺得其實(shí)以前覺得復(fù)雜的通信交互也就這么回事,遠(yuǎn)沒有想象中的那么深?yuàn)W晦澀专钉。而且上手輕松挑童,思路清晰,趣味無窮跃须。直至今天的實(shí)戰(zhàn)項(xiàng)目完成后站叼,我覺得前面若干天的學(xué)習(xí)都是值得的,有意思的東西來了菇民【⌒ǎ”編程,以指尖改變世界第练!“——作者按阔馋。