freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

聊天室的設(shè)計(jì)與開發(fā)畢業(yè)論文(參考版)

2025-07-01 21:33本頁(yè)面
  

【正文】 定義注冊(cè)按鈕的單擊事件 Sub reg_OnClick , _blank End Sub/scriptstyle type=text/cssbody { backgroundimage: url(Images/0071280%5B1%)。 charset=gb2312Link href= rel=stylesheettitle歡迎使用本聊天室/titlescript language=VBScript!39。nbsp。nbsp。nbsp。nbsp。nbsp。nbsp。}body { backgroundimage: url()。打開數(shù)據(jù)庫(kù) connstr%管理員登陸界面代碼:htmlheadmeta equiv=ContentType content=text/html。SERVER=CAIPC39。pwd=caiGCWGX90。連接數(shù)據(jù)庫(kù)chat,設(shè)置用戶名為sa,密碼為1234567,服務(wù)器為MYSERVERconnstr=Driver={sql server}。數(shù)據(jù)庫(kù)連接方法39。在此論文完成之際,首先向我的指導(dǎo)老師表示衷心的感謝!感謝她為我點(diǎn)亮了通向成功之路的啟明燈!其次,要向在大學(xué)四年學(xué)習(xí)中各位老師表示最真誠(chéng)的謝意,感謝各位老師對(duì)我學(xué)習(xí)和生活上的幫助,為我將來的前進(jìn)之路打下重要的基礎(chǔ)。致 謝在畢業(yè)設(shè)計(jì)中,我得到了指導(dǎo)老師大量的理論和實(shí)踐指導(dǎo)。例如,如果應(yīng)用程序是一個(gè)允許用戶選擇和購(gòu)買 CD 唱盤的聯(lián)機(jī)音樂商店,就可以用 SessionID 跟蹤用戶漫游整個(gè)應(yīng)用程序時(shí)的選擇。這就是說,帶有相應(yīng)的 cookie 的 HTTP 請(qǐng)求被認(rèn)為是來自同一 Web 瀏覽器。對(duì)包含 .asp 文件和其他需要“執(zhí)行”權(quán)限才能運(yùn)行的文件(如 .exe 和 .dll 文件等)的虛目錄允許“讀”和“執(zhí)行”權(quán)限。對(duì) .asp 文件和其他包含腳本的文件(如 .htm 文件等)所在的虛目錄允許“讀”和“腳本”權(quán)限。不同于 NTFS 權(quán)限提供的控制特定用戶對(duì)應(yīng)用程序文件和目錄的訪問方式,Web 服務(wù)器權(quán)限應(yīng)用于所有用戶,并且不區(qū)分用戶帳號(hào)的類型。如果 包含向?yàn)g覽器返回信息的命令而沒有保護(hù) 文件,則信息將被返回給瀏覽器,即便應(yīng)用程序的其他文件被保護(hù)。但是,訪問該應(yīng)用程序的公共用戶應(yīng)僅被授予“只讀”權(quán)限,以便將其限制為只能查看而不能更改應(yīng)用程序的Web頁(yè)。如果用戶的帳號(hào)具有打開文件的權(quán)限,計(jì)算機(jī)則允許該用戶訪問文件。當(dāng)擁有Windows NT有效帳號(hào)的用戶試圖訪問一個(gè)有權(quán)限限制的文件時(shí),計(jì)算機(jī)將檢查文件的訪問控制表 (ACL)。(1) NTFS 權(quán)限可以通過為單獨(dú)的文件和目錄應(yīng)用 NTFS 訪問權(quán)限來保護(hù)ASP應(yīng)用程序文件。如果不正確配置安全設(shè)置,不但會(huì)使 ASP 應(yīng)用程序遭受不必要的篡改,而且會(huì)妨礙正當(dāng)用戶訪問 .asp 文件。例如,一服務(wù)器端腳本計(jì)劃對(duì)一個(gè)值列表排序,如果本應(yīng)使用 “” 符號(hào)比較數(shù)值,但卻使用了“ ” 符號(hào),那么將返回不正確的排序結(jié)果。(4) 邏輯錯(cuò)誤邏輯錯(cuò)誤通??赡苁菨撛诤碗y以檢測(cè)的。 (3) 運(yùn)行時(shí)錯(cuò)誤運(yùn)行時(shí)錯(cuò)誤是腳本在執(zhí)行過程中腳本指令試圖執(zhí)行不可能的動(dòng)作而導(dǎo)致的。例如,命令拼寫錯(cuò)誤或傳遞給函數(shù)的參數(shù)不正確都將產(chǎn)生錯(cuò)誤。其中的某些錯(cuò)誤使腳本無法正確執(zhí)行程序停止執(zhí)行或返回錯(cuò)誤結(jié)果。如果該文件包含錯(cuò)誤或人為添加的停止執(zhí)行語句,那么 Microsoft 腳本調(diào)試程序?qū)⒆詣?dòng)啟動(dòng),顯示該腳本,并且指出錯(cuò)誤來源。如圖62所示:圖62 debugger調(diào)試 系統(tǒng)的運(yùn)行在開始運(yùn)行服務(wù)器腳本之前,必須首先配置 Web服務(wù)器,使其支持 ASP調(diào)試。除腳本調(diào)試程序外,一套好的調(diào)試技巧也能減少花費(fèi)在分析腳本錯(cuò)誤根源上的大量時(shí)間。不要混淆 debugger 語句和 JScript break 語句。 (4) 用 JScript Debugger 語句調(diào)試要將斷點(diǎn)加到用 Microsoft? JScript 編寫的服務(wù)器端腳本中,可在有疑問的行前插入 debugger 語句。當(dāng)在請(qǐng)求 Web 瀏覽器使用的先前的腳本時(shí),調(diào)試程序啟動(dòng)并自動(dòng)顯示 .asp 文件,而且語句指針會(huì)指示 stop 語句的位置。當(dāng)執(zhí)行到腳本中含有斷點(diǎn)的行時(shí),計(jì)算機(jī)啟動(dòng)腳本調(diào)試程序,并且語句指針會(huì)指在設(shè)置了斷點(diǎn)的行上。請(qǐng)用 Microsoft 腳本調(diào)試程序打開腳本,設(shè)置斷點(diǎn)??梢栽谀_本中有疑問處設(shè)置一個(gè)或多個(gè)不同的斷點(diǎn),然后使用調(diào)試器去改正腳本中設(shè)置的變量或?qū)傩缘闹怠?2) 斷點(diǎn)調(diào)試當(dāng)一個(gè)錯(cuò)誤發(fā)生并且很難找到錯(cuò)誤的根源時(shí),可使用預(yù)設(shè)斷點(diǎn)的調(diào)試方法。這種調(diào)試方式稱為實(shí)時(shí) (JIT)調(diào)試,計(jì)算機(jī)將暫停程序的執(zhí)行。 6. 1. 2 測(cè)試方法可以使用多種不同的測(cè)試技術(shù)來查找錯(cuò)誤的根源并測(cè)試應(yīng)用程序。 (2) 在服務(wù)器端腳本執(zhí)行時(shí),打開命令窗口監(jiān)視變量、屬性或數(shù)組元素的值;Script Debugger與Windows Internet Explorer 。if Left (talkAbout, 2) = “//”then Set fs= Server. CreateObject (“Scripting. FileSystemObject”) Set FileAction = fs OpenTextFile ( server. mappath (“Action. Txt”) , 1, False) SayStr= “” Do While Not FileAction. At End Of Line   If Delleft ( talkAbout, 2) = cstr (FileAction. Readline () ) Then     SayStr= cstr (FileAction. Readline () )     Exit Do   End If Loop通過以上技術(shù)的實(shí)現(xiàn),從而實(shí)現(xiàn)了網(wǎng)絡(luò)聊天室。如:輸入//agree,則顯示”某某某完全同意〈對(duì)方〉的看法。SelectObjectamp。這可以使用變量Application (Session (“Username”) )來保存每一用戶的屏蔽列表,每一對(duì)象在發(fā)言時(shí)都要先查看對(duì)象的屏蔽列表,如果自己被包含在其中,則系統(tǒng)顯示“對(duì)方已經(jīng)屏蔽了你的發(fā)言”。這樣即可實(shí)現(xiàn)封鎖用戶IP 地址的功能。這時(shí),用戶端的檢測(cè)程序檢測(cè)到用戶名字已經(jīng)不存在時(shí),將關(guān)閉窗口。}imgsrc=Images/ width=15 height=15 border=0刪除/a/tr % myPageSize=myPageSize1 i=i+1 Loop % tr 5. 2. 8 聊天室中實(shí)現(xiàn)封鎖IP地址功能在聊天室中封鎖IP地址的原理與踢人大致相同,只是其具體實(shí)現(xiàn)不一樣。) == true){=39。代碼如下:a href=javascript:if((39。檢測(cè)程序原理是:在所有的應(yīng)用級(jí)(Application)變量中查找自己的名字(已經(jīng)用會(huì)話變量保存),如果找到,則繼續(xù)程序,如果找不到,在關(guān)閉當(dāng)前窗口。在踢人的時(shí)候,只需將某一個(gè)用戶的信息從應(yīng)用級(jí)(Application)變量中刪除就可以達(dá)到踢人的目的。 5. 2. 7 聊天室實(shí)現(xiàn)踢人功能在聊天室的編寫過程中,一定要考慮到如何將搗亂的用戶趕出聊天室, 必要的時(shí)候還得能封鎖住他的IP地址。用戶提交的發(fā)言, 先利用存入session ( talk )中作個(gè)過渡,然后重定向到聊天顯示頁(yè)面。為了縮小定時(shí)刷新范圍,將聊天畫面分為上下兩幀,上一幀顯示發(fā)言,下一幀錄入發(fā)言,考慮到定時(shí)刷新頁(yè)面代碼中如果包括request對(duì)象的使用則在刷新該頁(yè)面時(shí)總是會(huì)彈出“是否重發(fā)表單數(shù)據(jù)”的對(duì)話框,因此,程序中均采用Session變量來記錄用戶名和發(fā)言。 5. 2. 6 發(fā)言顯示更新處理每個(gè)在線聊天的用戶要往聊天室寫入發(fā)言, 既通過提交動(dòng)作來更新發(fā)言顯示頁(yè)面;另一方面, 其他用戶的發(fā)言也需及時(shí)告訴每個(gè)用戶, 這就要用到頁(yè)面自動(dòng)定時(shí)更新的功能。 ur1=Msg. Asp’但這樣做的一個(gè)結(jié)果是:用戶的聊天顯示區(qū)域不停的刷新,即使沒人說話的瞬間也是如此這種強(qiáng)烈的刷新感將使用戶難以忍受,無法滿足要求。這樣就會(huì)造成顯示重復(fù)信息的錯(cuò)誤。不過,在接收方的程序里還需加入一段將自己的妮稱和有關(guān)私聊數(shù)據(jù)從Application (“PrivateList”)和Application (“PrivateData” )中清除的程序。 Private Data)變量中查找有關(guān)自己的私聊數(shù)據(jù),并將其儲(chǔ)存在Session (“ Private Data”)變量中。若有,則表明有人發(fā)給我私聊數(shù)據(jù)。在寫入私聊數(shù)據(jù)時(shí),為了將不同用戶的私聊數(shù)據(jù)加以區(qū)分,可以在數(shù)據(jù)與數(shù)據(jù)之間加入一些標(biāo)識(shí)符以示區(qū)別。 Private Data ),用于儲(chǔ)存一個(gè)用戶的私聊數(shù)據(jù); Session (“ Nickname” ),用于儲(chǔ)存用戶的妮稱; Session (“destname” ),用于儲(chǔ)存目的用戶的妮稱。不過在程序的實(shí)現(xiàn)上要比上面的那個(gè)方法復(fù)雜一些。其實(shí),上面的這個(gè)方法是為每個(gè)用戶建立一個(gè)存放私聊數(shù)據(jù)的變量,這種方法不好。解決這個(gè)問題可以使用下面方法實(shí)現(xiàn)。但是,新的問題也就出現(xiàn)了:大家知道,Session對(duì)象會(huì)在用戶會(huì)話超時(shí)或結(jié)束時(shí)自動(dòng)銷毀以釋放空間,而Application對(duì)象要等到服務(wù)器關(guān)掉才會(huì)銷毀。在接收方,如果他的Session(“Nickname”)的值也為ABC的話,那么接收方的那個(gè)Application對(duì)象的變量就為Application (“ABC”)。發(fā)送方只要將目的用戶的妮稱寫入Session (“destname” ),然后通過上述列出的發(fā)送方代碼就可以將私聊內(nèi)容發(fā)至想要發(fā)送的對(duì)象,而其他用戶是收不到此內(nèi)容的。PrivateDataApplication. UnLock % 接收方代碼:% =Application(Session(“ Nickname”)% 在上述代碼中,Session (“Destname”)用來存放目的用戶的用戶名;Private Data用來存放私聊內(nèi)容;Session (“Nickname”)用來存放用戶的妮稱(可以在用戶登錄的時(shí)候?qū)⒂脩舻哪莘Q寫入該變量)。在這必須多建幾個(gè)變量來解決這個(gè)問題。對(duì)于一個(gè)擁有私聊功能的聊天室,與沒有此功能的聊天室最大的區(qū)別是:允許客戶端的屏幕顯示不同的內(nèi)容,而不象沒有此功能的聊天室那樣每個(gè)人的屏幕顯示的內(nèi)容都是一樣。所以,上述代碼中使用了Application . Lock和Application . UnLock來避免此問題的發(fā)生。在網(wǎng)絡(luò)上,發(fā)送消息可能是一個(gè)并發(fā)事件。NewMsg Application. UnLock % 以上代碼只需放入發(fā)送消息的ASP文件中就可以了。在ASP中,只要建立一個(gè)Application對(duì)象的變量,然后對(duì)其讀寫就可以實(shí)現(xiàn)了。 5. 2. 4 公共聊天和私聊功能的實(shí)現(xiàn)公共聊天功能的實(shí)現(xiàn)思路:對(duì)于沒有私聊功能的聊天室來說,其實(shí)每個(gè)用戶的屏幕上顯示的內(nèi)容是一樣的。管理員登陸界面如圖51所示,用戶登陸界面如圖52所示。application(allname)來獲得所有人的名字。這里只需要一個(gè)判斷語句就可以完成,把表單中的nickname文本框中的內(nèi)容存入nickname變量中,并判斷nickname變量是否為空,如果是則返回登陸界面;如果不是則把“來自‘某IP地址’的‘某某同學(xué)’在‘某時(shí)間’來到我們身邊啦!!”這句話存入application(“show”)變量中(這樣同時(shí)實(shí)現(xiàn)了系統(tǒng)公告)。為了處理方便,在該程序中創(chuàng)建了Application對(duì)象變量的本地引用,這樣做是為了簡(jiǎn)化代碼,使用簡(jiǎn)短的本地變量而不是繁瑣的名字, 如: Application( gchats)。代碼如下所示:global. asaSCRIPT LANGUAGE=VBScriptRU NAT=ServerSUB Dim m chats (12) application(”gchats)=m chats application(gcounte r)=0end sub/SCRIPT為了防止兩個(gè)用戶為寫入發(fā)言同時(shí)對(duì)Application對(duì)象變量修改,從而導(dǎo)致一個(gè)用戶的所作的修改被另一個(gè)用戶的操作所覆蓋,必須解決多用戶并發(fā)寫入問題,Application對(duì)象的Locked屬性可以用來只允許當(dāng)前用戶編輯Application對(duì)象的值,操作結(jié)束必須用UnLocked來釋放其對(duì)Application對(duì)象的獨(dú)占。為了便于處理,引入一個(gè)數(shù)組來存放發(fā)言,在global. asa文件的Application OnStart事件代碼中定義數(shù)組并將其賦給一個(gè)Application對(duì)象,數(shù)組的大小定為12,是為了限定顯示行數(shù)為12行,保證用戶閱讀信息的方便,不用拉動(dòng)垂直滾動(dòng)條。這一技術(shù)在不同的編程語言中有不同的解決思路,如共享內(nèi)存,數(shù)據(jù)文件;或者使用服務(wù)器/客戶模式程序?qū)崿F(xiàn)在多個(gè)程序間完成數(shù)據(jù)交換。不管在何種語言中,數(shù)組是能同時(shí)滿足這兩項(xiàng)要求的數(shù)據(jù)結(jié)構(gòu)之一。因此,我們可舍棄磁盤文件及后臺(tái)數(shù)據(jù)庫(kù)的方法,直接使用內(nèi)存進(jìn)行操作,這樣可大大提高信息的讀寫速度,從而能較好地解決聊天室的速度瓶頸問題。(9)如何實(shí)現(xiàn)屏蔽功能。(7)如何實(shí)現(xiàn)封鎖IP功能。(5)如何解決聊天刷新。(3)如何實(shí)現(xiàn)人員列表。當(dāng)然還有一類數(shù)據(jù)如聊天者的個(gè)人資料,以及其在本聊天室中目前的權(quán)限級(jí)別等等,此類數(shù)據(jù)因無須共享,對(duì)聊天的速度并沒有本質(zhì)上的影響,所以系統(tǒng)降低了對(duì)它們進(jìn)行組織存儲(chǔ)的要求,可以使用磁盤文件,也可以借助于Web后臺(tái)數(shù)據(jù)庫(kù)(如MSSQLS
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1