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

正文內(nèi)容

基于tcp協(xié)議的簡單即時(shí)通信軟件的設(shè)計(jì)與實(shí)現(xiàn)2-閱讀頁

2025-05-29 23:57本頁面
  

【正文】 試用戶是否因意外原因離線(3) 情況記錄:將用戶登錄時(shí)間,IP,下線時(shí)間等信息記錄入數(shù)據(jù)庫 邏輯圖圖2 邏輯圖 數(shù)據(jù)庫設(shè)計(jì) 實(shí)體關(guān)系圖服務(wù)器是作為記錄和讀取數(shù)據(jù)庫信息的載體,與客戶端關(guān)系并不復(fù)雜,這里需要重點(diǎn)考慮客戶端之間的關(guān)系。ER圖如下:聊天文件傳輸nn用戶ID好友ID狀態(tài)IP客戶端賬號(hào)昵稱EmailID密碼好友分組狀態(tài)客戶端賬號(hào)昵稱EmailID密碼好友分組IP圖3 ER圖 詳細(xì)列表數(shù)據(jù)庫包含兩個(gè)表,分別為記錄用戶信息的TCP_Userinfo和記錄用戶好友信息的TCP_Friendinfo。這兩個(gè)C類定義了包括服務(wù)器信息,狀態(tài)信息,注冊(cè)信息,登錄信息,聊天信息或者請(qǐng)求文件傳輸信息的函數(shù),服務(wù)器和客戶端通過將它們實(shí)例化和序列化再轉(zhuǎn)換成流在網(wǎng)絡(luò)上進(jìn)行傳輸。數(shù)據(jù)庫的設(shè)計(jì)和信息的傳遞辨別都是比較難實(shí)現(xiàn)的。數(shù)據(jù)庫以用戶ID為標(biāo)準(zhǔn)對(duì)好友ID和分組信息進(jìn)行內(nèi)連接查詢,就可以得到基本的好友信息了。實(shí)現(xiàn)的途徑也多種多樣,鑒于安全性和復(fù)雜性的需求不同,實(shí)現(xiàn)方法有簡有繁。 服務(wù)器端這里顯示傳入的原始信息服務(wù)器端的界面設(shè)計(jì)是基于便于測試的目的而實(shí)現(xiàn)的。如果發(fā)現(xiàn)用戶發(fā)送的是登錄信息,就根據(jù)登錄信息中的用戶名和密碼判斷是否存在用戶,密碼是否正確,成功后再查詢出用戶的好友信息并且賦值給FriendStruct,再將信息返回給客戶端: 多線程對(duì)于服務(wù)器來說,多線程是必不可少的,否則它將無法處理不斷請(qǐng)求的新連接。本設(shè)計(jì)實(shí)現(xiàn)代碼如下: = new Thread(new ThreadStart(Serve))。//打開新線程不僅僅是服務(wù)器,基于P2P模式聊天的客戶端也必須支持多線程運(yùn)行,實(shí)現(xiàn)代碼與之類似,在客戶端設(shè)計(jì)說明中將不再敘述。 += new ElapsedEventHandler(CheckStatus)。 = true。 客戶端聊天信息好友詳細(xì)信息列表圖5 注冊(cè)界面圖6 登錄、聊天、文件傳輸界面 同步套接字客戶端客戶端發(fā)起同步套接字連接,并傳送登錄或者注冊(cè)信息,由于兩者方式類似,這里僅列出用戶登錄的代碼: region 發(fā)送服務(wù)器登錄信息,并接收服務(wù)器反饋信息 public void Client() {建立SOCKET發(fā)送信息: try { IPEndPoint ServerIPEP = new IPEndPoint((),8888)。 ((EndPoint)ServerIPEP)。 (s,_message)。 (0, )。 int i = (d, 0, , )。 }以下代碼讀取了服務(wù)器返回給客戶端的信息(注冊(cè)和登錄的成功與失?。?,如果返回了登錄成功的信息,還會(huì)讀取服務(wù)器給出的FriendStruct結(jié)構(gòu)以得到用戶的好友信息: region 接收反饋信息 byte[] data = new byte[2048]。 byte[] chat = new byte[rect]。 UMessage bumessage = (UMessage)(new MemoryStream(chat))。 string _fg=。,39。 int xxx=。 for(int i=0。i++) { string[] ems=new string[5]。 ems[1]=ff[i].nickname。 ems[3]=ff[i].IP。 ListViewItem item = new ListViewItem(ems)。 }CSERVER是一個(gè)用于開啟監(jiān)聽P2P信息的方法,客戶端在登錄成功以后就會(huì)立刻開啟監(jiān)聽器,才能夠?qū)崿F(xiàn)與其它客戶端的聊天: th = new Thread(new ThreadStart(CServer))。//打開新線程 (+登錄成功!)。 =false。 } else {(())。這里也不再闡述代碼。由于文件傳輸?shù)拇a實(shí)現(xiàn)復(fù)雜,通過類庫可以大量的簡化代碼,使主程序簡潔易懂。結(jié) 論即時(shí)通信是是網(wǎng)絡(luò)發(fā)展的必然趨勢,它的技術(shù)仍然在不斷的改進(jìn)和蓬勃發(fā)展中。在本次設(shè)計(jì)中,我深刻體會(huì)到SOCKET編程的基礎(chǔ)性,多樣化。第 18 頁 參考文獻(xiàn)[1] Tobin. Titus, Fabio Claudio Ferracchiati. C線程參考手冊(cè)[M].:清華大學(xué)出版社,2003。[3] Andrew Krowczyk, vinod Kumar. .NET網(wǎng)絡(luò)高級(jí)編程[M].北京:清華大學(xué)出版社,2003。[5] 方睿,吳四九,刁仁宏. 網(wǎng)絡(luò)數(shù)據(jù)庫原理及應(yīng)用[M].四川:四川大學(xué)出版社,2005。[7] 王躍. INTERNET上大規(guī)模用戶即時(shí)通信方法研究[D].北京:北京工業(yè)大學(xué)[碩士論文],20
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1