網(wǎng)絡(luò)編程小結(jié).doc_第1頁
網(wǎng)絡(luò)編程小結(jié).doc_第2頁
網(wǎng)絡(luò)編程小結(jié).doc_第3頁
網(wǎng)絡(luò)編程小結(jié).doc_第4頁
網(wǎng)絡(luò)編程小結(jié).doc_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

網(wǎng)絡(luò)編程小結(jié)班級(jí):090342 學(xué)號(hào):09034217 姓名:李德風(fēng)一、 網(wǎng)絡(luò)編程基本概念通過使用套接字來達(dá)到進(jìn)程間通信目的編程就是網(wǎng)絡(luò)編程。windows提供的基于網(wǎng)絡(luò)編程的就是套接字也就是winsock,但是現(xiàn)在Winpcap也是一個(gè)比較方便的工具。 網(wǎng)絡(luò)編程從大的方面說就是對(duì)信息的發(fā)送到接收,中間傳輸為物理線路的作用,編程人員可以不用考慮 網(wǎng)絡(luò)編程最主要的工作就是在發(fā)送端把信息通過規(guī)定好的協(xié)議進(jìn)行組裝包,在接收端按照規(guī)定好的協(xié)議把包進(jìn)行解析,從而提取出對(duì)應(yīng)的信息,達(dá)到通信的目的!中間最主要的就是數(shù)據(jù)包的組裝,數(shù)據(jù)包的過濾,數(shù)據(jù)包的捕獲,數(shù)據(jù)包的分析,當(dāng)然最后再做一些處理! 代碼,開發(fā)工具,數(shù)據(jù)庫(kù),服務(wù)器架設(shè)和網(wǎng)頁設(shè)計(jì)這5部分你都要接觸 代碼分靜態(tài)代碼和動(dòng)態(tài)代碼 靜態(tài)代碼是服務(wù)器不解析直接發(fā)送給客戶端的部分,用做布局效果,一般不用于數(shù)據(jù)庫(kù)操作 靜態(tài)代碼分html,javascript,css等,其中html語言是基礎(chǔ),要學(xué)網(wǎng)絡(luò)編程就先學(xué)html語言.javascript用于實(shí)現(xiàn)某些特效,css是樣式語言.這3個(gè)語言組合起來,可以設(shè)計(jì)出美妙的網(wǎng)頁效果 動(dòng)態(tài)代碼是服務(wù)器需要解析的部分,用作數(shù)據(jù)庫(kù)連接操作等.有php,jsp,asp這幾種語言你只用先學(xué)一種就可.如果是想快速入門,建議先學(xué)asp,如果想學(xué)了找工作等,建議學(xué)php或jsp, 開發(fā)工具有很多種,我推薦一種,網(wǎng)絡(luò)3劍客,其中dw是開發(fā)代碼的,fw是做圖的.flash是做動(dòng)畫的. 數(shù)據(jù)庫(kù)要結(jié)合你學(xué)的動(dòng)態(tài)語言來選擇,asp系列的,你可以使用access,大型點(diǎn)使用mssql. php和mysql是很好的搭檔. 服務(wù)器架設(shè)也是結(jié)合你學(xué)的動(dòng)態(tài)語言的,windows下安裝iis很方便,iis可以運(yùn)行asp,安裝.net框架后能運(yùn)行,這兩者架設(shè)相對(duì)簡(jiǎn)單,也是我推薦你入門學(xué)asp的原因.php一般安裝apache服務(wù)器,jsp一般安裝tomcat服務(wù)器.只有架設(shè)好服務(wù)器,才能瀏覽動(dòng)態(tài)語言編寫的程序. 雖然是編程,但是總會(huì)涉及到網(wǎng)頁設(shè)計(jì)部分,還是要去學(xué)學(xué)怎么簡(jiǎn)單的作圖和動(dòng)畫。二、關(guān)于基本語言的一些知識(shí)1.刪除記錄 opendataconn 打開數(shù)據(jù)庫(kù)連接 xxlb=RtnReplaceInt(Trim(request(xxlb),0) 從里到外依次是接收xxlb變量,去除變量?jī)啥说目崭?最外層是一個(gè)自定義函數(shù),估計(jì)與替換有關(guān)。 id=changechr(request(id) 接收id,并轉(zhuǎn)換成字符串 ids=split(id,) 把id按 , 分割,并保存到數(shù)組ids中 for i=0 to ubound(ids) 用for循環(huán)遍歷數(shù)組 tt=trim(ids(i) 數(shù)組元素去除兩端空格后賦值給tt conn.executedelete from house where id=&tt& 刪除數(shù)據(jù)表中id=tt變量的記錄 next 循環(huán)結(jié)束 response.redirect house.asp?xxlb=&xxlb& 跳轉(zhuǎn)到house頁面并用get方法傳遞xxlb參數(shù),值為xxlb變量的值. closedataconn 關(guān)閉數(shù)據(jù)庫(kù)連接 2.連接數(shù)據(jù)庫(kù) dim conn 定義變量 dim char_str(20) 定義數(shù)組 sub OpenDataConn() 自定義過程,用戶鏈接數(shù)據(jù)庫(kù)地 dim connstr 定義變量 connstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= connstr = connstr & Server.MapPath(././data/fyhouse_free.mdb) 數(shù)據(jù)庫(kù)驅(qū)動(dòng)字符串 response.write connstr 輸出變量connstr的值 set conn=Server.CreateObject(AdoDb.Connection) 創(chuàng)建連接對(duì)象 conn.Open connstr 鏈接數(shù)據(jù)庫(kù) end sub 這句是過程的結(jié)束語,但從你貼出來的代碼來看并沒有開頭。3.其他(1).ASP錯(cuò)誤信息解決:IIS啟用父路徑的設(shè)置.舉例:公司有個(gè)客戶保修網(wǎng)站后臺(tái)無法訪問,我查看了源代碼,發(fā)現(xiàn)ASP代碼本身并沒有什么問題。而且我下到本地能夠訪問。就是在網(wǎng)上不能正常連接,顯示入下錯(cuò)誤:Server.MapPath() 錯(cuò)誤 ASP 0175 : 80004005 不允許的 Path 字符 /0709/dqyllhsub/news/OpenDatabase.asp,行 4 在 MapPath 的 Path 參數(shù)中不允許字符 .網(wǎng)頁里面用了一個(gè) Response.Redirect 的路徑重指向,客戶頁面里面指向路徑寫的是相對(duì)路徑,省略了網(wǎng)站域名地址。主要是IIS服務(wù)器沒有開啟父路徑,修改方法:在IIS中 屬性-主目錄-配置-選項(xiàng)中。把”啟用父路徑“前面打上勾。確認(rèn)刷新。如果服務(wù)器提供商出于安全考慮不開啟父路徑,建議路徑指向的時(shí)候?qū)懡^對(duì)路徑,即完整地址 如/images/logo.gifIIS6.0安裝后默認(rèn)設(shè)置是,不開啟父路徑。(2).ASP網(wǎng)站程序自動(dòng)升級(jí)實(shí)現(xiàn)的方法現(xiàn)在流行虛擬主機(jī)建站,我也有個(gè)網(wǎng)站,也算是個(gè)站長(zhǎng)咯。當(dāng)了近一年的站長(zhǎng),感到網(wǎng)站程序每次升級(jí)的時(shí)候頗為麻煩:先去官方看公告,然后下載升級(jí)包到本地,解壓,F(xiàn)TP上傳到虛擬主機(jī)。這些都是累人的體力活,加之本人又懶得很,所以異想天開的覺得要是程序能夠自動(dòng)升級(jí)就好了。所以就想了想,寫了本文,希望對(duì)WEB程序開發(fā)者有幫助。這里只針對(duì)ASP,因?yàn)槲抑粫?huì)ASP :-(先看看傳統(tǒng)的win32程序的升級(jí)過程(比如殺毒軟件),它是依靠軟件的升級(jí)程序通過網(wǎng)絡(luò)連接到服務(wù)器分析并下載升級(jí)文件到本地。WEB程序有點(diǎn)不一樣,因?yàn)樗沁\(yùn)行于WEB服務(wù)器。它最終是要把升級(jí)服務(wù)器上的文件覆蓋到WEB服務(wù)器,站長(zhǎng)的電腦只是中轉(zhuǎn)。如果直接把升級(jí)服務(wù)器上的文件Copy到WEB服務(wù)器(而不通過站長(zhǎng)中轉(zhuǎn))那就實(shí)現(xiàn)了自動(dòng)升級(jí)。好在系統(tǒng)自帶了一個(gè) Microsoft.XMLHTTP 組件用于訪問WEB,在ASP中可以調(diào)用它來實(shí)現(xiàn)連接升級(jí)服務(wù)器下載升級(jí)文件。以下代碼是利用 Microsoft.XMLHTTP下載文件的例子:%Set xPost = CreateObject(Microsoft.XMLHTTP) xPost.Open GET,/test.exe,False xPost.Send() Set sGet = CreateObject(ADODB.Stream) sGet.Mode = 3 sGet.Type = 1 sGet.Open() sGet.Write(xPost.responseBody) sGet.SaveToFile Server.MapPath(update.exe),2 set sGet = nothing set sPOST = nothing response.Write(下載文件成功!)% 上面代碼就是把 /test.exe保存到WEB服務(wù)器當(dāng)前目錄,至于Microsoft.XMLHTTP 的更多用法還是看看MSDN吧。如果文件比較多,就會(huì)多次調(diào)用Microsoft.XMLHTTP連接網(wǎng)絡(luò),就可能出現(xiàn)某次連接失敗部分文件未能更新的情況,為了避免這種情況,最好是把所有文件打包為一個(gè)文件一次下載到WEB后再解包。呵呵,這里說的打包可不是RAR或者ZIP包,而是我們自己定義。比如把所有文件拼接為一個(gè),然后再根據(jù)特殊的記號(hào)分開?,F(xiàn)在沒這么麻煩咯,因?yàn)橛袀€(gè)現(xiàn)成的辦法,我們使用拿來主義就是:把所有文件(二進(jìn)制形式)及其路徑信息放入Access數(shù)據(jù)庫(kù)。下面這個(gè)vbs文件(來自海洋頂端2006Plus)就是打包當(dāng)前目錄的所有文件的: Dim n, ws, fsoX, thePath Set ws = CreateObject(WScript.Shell) Set fsoX = CreateObject(Scripting.FileSystemObject) thePath = ws.Exec(cmd /c cd).StdOut.ReadAll() & i = InStr(thePath, Chr(13) thePath = Left(thePath, i - 1) n = len(thePath)On Error Resume Next addToMdb(thePath) Wscript.Echo 當(dāng)前目錄已經(jīng)打包完畢,根目錄為當(dāng)前目錄 Sub addToMdb(thePath) Dim rs, conn, stream, connStr Set rs = CreateObject(ADODB.RecordSet) Set stream = CreateObject(ADODB.Stream) Set conn = CreateObject(ADODB.Connection) Set adoCatalog = CreateObject(ADOX.Catalog) connStr = Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Packet.mdb adoCatalog.Create connStr conn.Open connStr conn.Execute(Create Table FileData(Id int IDENTITY(0,1) PRIMARY KEY CLUSTERED, P Text, fileContent Image) stream.Open stream.Type = 1 rs.Open FileData, conn, 3, 3 fsoTreeForMdb thePath, rs, stream rs.Close Conn.Close stream.Close Set rs = Nothing Set conn = Nothing Set stream = Nothing Set adoCatalog = Nothing End Sub Function fsoTreeForMdb(thePath, rs, stream) Dim i, item, theFolder, folders, files sysFileList = $ & WScript.ScriptName & $Packet.mdb$Packet.ldb$ Set theFolder = fsoX.GetFolder(thePath) Set files = theFolder.Files Set folders = theFolder.SubFolders For Each item In folders fsoTreeForMdb item.Path, rs, stream Next For Each item In files If InStr(LCase(sysFileList), $ & LCase(item.Name) & $) = 0 Then rs.AddNew rs(P) = Mid(item.Path, n + 2) stream.LoadFromFile(item.Path) rs(fileContent) = stream.Read() rs.Update End If Next Set files = Nothing Set folders = Nothing Set theFolder = Nothing End Function 以下是解包的ASP文件: (3).ASP進(jìn)階學(xué)習(xí):一些VBscrpt函數(shù)Array()函數(shù)返回一個(gè)數(shù)組 表達(dá)式 Array(list) 允許數(shù)據(jù)類型: 字符,數(shù)字均可 實(shí)例: 返回結(jié)果: 建立了一個(gè)包含7個(gè)元素的數(shù)組myArray myArray(Sunday,Monday, . . Saturday) CInt() 函數(shù)將一個(gè)表達(dá)式轉(zhuǎn)化為數(shù)字類型 表達(dá)式 CInt(expression) 允許數(shù)據(jù)類型: 任何有效的字符均可 實(shí)例: 返回結(jié)果: 236 轉(zhuǎn)化字符234為數(shù)字234,如果字符串為空,則返回0值 CreateObject() 函數(shù)建立和返回一個(gè)已注冊(cè)的ACTIVEX組件的實(shí)例。 表達(dá)式 CreateObject(objName) 允許數(shù)據(jù)類型: objName 是任何一個(gè)有效、已注冊(cè)的ACTIVEX組件的名字. 實(shí)例: CStr() 函數(shù)轉(zhuǎn)化一個(gè)表達(dá)式為字符串. 表達(dá)式 CStr(expression) 允許數(shù)據(jù)類型: expression 是任何有效的表達(dá)式。 實(shí)例: 返回結(jié)果: 轉(zhuǎn)化數(shù)字“5”為字符“5”。 Date() 函數(shù)返回當(dāng)前系統(tǒng)日期. 表達(dá)式 Date() 允許數(shù)據(jù)類型: None. 實(shí)例: 返回結(jié)果: 9/9/00 DateAdd() 函數(shù)返回一個(gè)被改變了的日期。 表達(dá)式 DateAdd(timeinterval,number,date) 允許數(shù)據(jù)類型: timeinterval is the time interval to add; number is amount of time intervals to add; and date is the starting date. 實(shí)例: 返回結(jié)果: 9/9/00 3:34:45 PM m = month; d = day; If currentDate is in time format then, h = hour; s = second; DateDiff() 函數(shù)返回兩個(gè)日期之間的差值。 表達(dá)式 DateDiff(timeinterval,date1,date2 , firstdayofweek , firstweekofyear) 允許數(shù)據(jù)類型: timeinterval 表示相隔時(shí)間的類型,如“M“表示“月”。 實(shí)例: 返回結(jié)果: 從9/9/00 到2000年還有 150 天. Day() 函數(shù)返回一個(gè)月的第幾日 . 表達(dá)式 Day(date) 允許數(shù)據(jù)類型: date 是任何有效的日期。 實(shí)例: 返回結(jié)果: 4 formatCurrency() 函數(shù)返回表達(dá)式,此表達(dá)式已被格式化為貨幣值 表達(dá)式 formatCurrency(Expression , Digit , LeadingDigit , Paren , GroupDigit) 允許數(shù)據(jù)類型: Digit 指示小數(shù)點(diǎn)右側(cè)顯示位數(shù)的數(shù)值。默認(rèn)值為 -1,指示使用的是計(jì)算機(jī)的區(qū)域設(shè)置; LeadingDigit 三態(tài)常數(shù),指示是否顯示小數(shù)值小數(shù)點(diǎn)前面的零。 實(shí)例: 返回結(jié)果: $34.35 formatDateTime() 函數(shù)返回表達(dá)式,此表達(dá)式已被格式化為日期或時(shí)間 表達(dá)式 formatDateTime(Date, , Namedformat) 允許數(shù)據(jù)類型: Namedformat 指示所使用的日期/時(shí)間格式的數(shù)值,如果省略,則使用 vbGeneralDate. 實(shí)例: 返回結(jié)果: Sunday, September 09, 2000 formatNumber() 函數(shù)返回表達(dá)式,此表達(dá)式已被格式化為數(shù)值. 表達(dá)式 formatNumber(Expression , Digit , LeadingDigit , Paren , GroupDigit) 允許數(shù)據(jù)類型: Digit 指示小數(shù)點(diǎn)右側(cè)顯示位數(shù)的數(shù)值。默認(rèn)值為 -1,指示使用的是計(jì)算機(jī)的區(qū)域設(shè)置。; LeadingDigit i指示小數(shù)點(diǎn)右側(cè)顯示位數(shù)的數(shù)值。默認(rèn)值為 -1,指示使用的是計(jì)算機(jī)的區(qū)域設(shè)置。; Paren 指示小數(shù)點(diǎn)右側(cè)顯示位數(shù)的數(shù)值。默認(rèn)值為 -1,指示使用的是計(jì)算機(jī)的區(qū)域設(shè)置。; GroupDigit i指示小數(shù)點(diǎn)右側(cè)顯示位數(shù)的數(shù)值。默認(rèn)值為 -1,指示使用的是計(jì)算機(jī)的區(qū)域設(shè)置。. 實(shí)例: 返回結(jié)果: 45.325 formatPercent() 函數(shù)返回表達(dá)式,此表達(dá)式已被格式化為尾隨有 % 符號(hào)的百分比(乘以 100 )。 (%) 表達(dá)式 formatPercent(Expression , Digit , LeadingDigit , Paren , GroupDigit) 允許數(shù)據(jù)類型: 同上. 實(shí)例: 返回結(jié)果: 45.267% Hour() 函數(shù)以24時(shí)返回小時(shí)數(shù). 表達(dá)式 Hour(time) 允許數(shù)據(jù)類型: 實(shí)例: 返回結(jié)果: 16 (Hour has been converted to 24-hour system) Instr() 函數(shù)返回字符或字符串在另一個(gè)字符串中第一次出現(xiàn)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論