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

正文內(nèi)容

aspnet論文基于tcp協(xié)議的簡單即時通信軟件的設(shè)計與實現(xiàn)cs-全文預(yù)覽

2025-11-08 19:01 上一頁面

下一頁面
  

【正文】 = 10。 (d, 0, )。 } } } 以上代碼也包含了對客戶端的請求信息的判斷和對客戶端返回信息的生成和傳輸。//新建一個用于監(jiān)聽的線程 ()。 // 設(shè)置引發(fā)時間的時間間隔 此處設(shè)置為 5秒(5000毫秒) = 5000。 好友詳細(xì)信息列表 聊天信息 第 21 頁 共 28 頁 c = new Socket(,)。 byte[] d=new byte[]。 } catch(Exception ex) { ()。 (data,0,chat,0,rect)。 while(true) { int rect = (data)。 (d, 0, )。 s = new MemoryStream()。 CheckStatus 就是用于向客戶端發(fā)送檢查信息的方法,它會向遍歷連入的客戶端 (alSock),然后依次向客戶端發(fā)送信息 ,如果發(fā)現(xiàn)客戶端沒有響應(yīng),就會如果發(fā)現(xiàn)對方無回應(yīng),則關(guān)閉相應(yīng)的 SOCKET,并更新數(shù)據(jù)庫的用戶在線 狀態(tài),同時向該用戶的所有好友發(fā)送用戶已下線的通知。 計時器 計時器用于實現(xiàn)心跳報文的功能,服務(wù)器在啟動以后就開始計時,每隔一定時間就向所有連入的客戶端發(fā)送信息,核心代碼如下: //用計時器檢查客戶端是否掉線 aTimer = new ()。C的 提供了多線程編程的支持。 endregion } } } endregion Tb_states是個用于監(jiān)視 SOCKET傳入信息的文本框,便于觀察和測試相關(guān)信息: ([ + () + ] + (chat))。 byte[] d = new byte[]。 region 此處寫入 登錄 失敗代碼 Stream ms = new MemoryStream()。 (d, 0, )。 = xxx。 Socket sc = (Socket)alSock[(uc, 0)]。 ff[i].fg = getf[FriendGroup].ToString()。 while (()) { ff[i].account=getf[UserAccount].ToString()。 int i=0。 , UserOnline=1 where UserAccount=39。 (ds, find)。 SqlDataAdapter sdr = new SqlDataAdapter(select * from TCP_UserInfo join TCP_FriendInfo on =39。, )。 SqlDataReader usdr = (select * from TCP_UserInfo where UserAccount=39。 第 17 頁 共 28 頁 (d)。 (ms, umessage)。 (0, )。 + + 39。 + () + 39。 + + 39。 Socket sc = (Socket)alSock[(uc, 0)]。, )。 int info = 。 int rect = (data)。 以下代碼讀取連入的連接,依 次 將連接 加入 可變長數(shù)組 alsock,并且讀取傳入的信息,進(jìn)行反串行化: while (true) { try { uc = ()。 s = new Socket(, , )。 第 15 頁 共 28 頁 服務(wù)器端 服務(wù)器端的界面設(shè)計是基于便于測試的目的而實現(xiàn)的。 } catch (Exception e) { if (e != null) errorstr = ()。 SqlCommand sqlcmd = new SqlCommand(sql, connstr)。 try { sqldr = ()。database=TCPDB)。本設(shè)計使用了一個簡單的類( )實現(xiàn)了簡單快捷的數(shù)據(jù)庫連接和讀取。 i++。 ff[i].IP = getf[UserIP].ToString()。 public string fg。 } } public struct Friend { public string account。 using 。代碼如下: select * from TCP_UserInfo join TCP_FriendInfo on =39。 } endregion 數(shù)據(jù)結(jié)構(gòu) FriendStruct 服務(wù)器如果保存和傳遞用戶的好友信息是難點之一。 =。 } } } 由于 與 類似, 在此不再詳述 。 } } public int Fn { get { return _fn。 } } public int Info { get { return _info。 } } public string Accounts { get { return _accounts。 public string Nickname { get { return _nickname。 private int _info。 主要代碼如下: [Serializable] public class UMessage { public UMessage(){ } private string _nickname。用戶與用戶之間的關(guān)系是較為特殊的遞歸關(guān)系,即描述發(fā)生在兩個相同實體上的關(guān)系。 : (1)客戶可以輸入 賬號 和密碼進(jìn)行 登錄 ,客戶端會發(fā)送 登錄 信息等待服務(wù)器響應(yīng), 登錄 成功后會發(fā)出 登錄 成功信息并刷新好友列表??蛻舳酥g可 以發(fā)起 P2P 模式的聊天,可以傳送文件。需要分別實現(xiàn)服務(wù)器端和客戶端的軟件設(shè)計。為了創(chuàng)建即時 通信 的統(tǒng)一標(biāo)準(zhǔn),人們經(jīng)過了多次嘗試: IETF 的對話初始協(xié)議( SIP)和 即時 通信 對話初始協(xié)議和表示擴(kuò)展協(xié)議( SIMPLE)、應(yīng)用交換協(xié)議( APEX)、顯示和即時 通信 協(xié)議( PRIM)及基于 XML 且開放的可擴(kuò)展 通信 和表示協(xié)議( XMPP)協(xié)議(常稱為 Jabber 協(xié)議)。這些信息的格式必須是協(xié)議參與方同意并且 遵循的。 即時通信 協(xié)議 協(xié)議是一系列的步驟,它包括雙方或者多方,設(shè)計它的目的是要完成一項任務(wù)。嚴(yán)格說來,客戶機(jī) /服務(wù)器模型并不是從物理分布的角度來定義,它所體現(xiàn)的是一種網(wǎng)絡(luò)數(shù)據(jù)訪問的實現(xiàn)方式。對于簡單的服務(wù),把每個請求用一個 IP 數(shù)據(jù)報發(fā)給服務(wù)器,服務(wù)器用另一個數(shù)據(jù)報返回響應(yīng)。該模式的基本思想是把集中在一起的應(yīng)用劃分成為功能不同的兩個部分 ,分別在不同的計算機(jī)上運行,通過它們之間的分工合作來實現(xiàn)一個完整的功能。 其實在用 C#進(jìn)行網(wǎng)絡(luò)編程中,我們并不需要了解什么同步、異步、阻塞和非阻塞的原理和工作機(jī)制,因為在 .Net FrameWrok SDK 中已經(jīng)已經(jīng)把這些機(jī)制給封裝好了。 阻塞( Block):指執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時,直到調(diào)用成功才返回,否則此套節(jié)字就一直阻塞在網(wǎng)絡(luò)調(diào)用上,比如調(diào)用 StreamReader 類的 Readlin ( )方法讀取網(wǎng)絡(luò)緩沖區(qū)中的數(shù)據(jù),如果調(diào)用的時候沒有數(shù)據(jù)到達(dá),那么此 Readlin ( )方法將一直掛在調(diào)用上,直到讀到一些數(shù)據(jù),此函數(shù)調(diào)用才返回 非阻塞( Unblock):指在執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時,不管是否執(zhí)行成功,都立即返回。它實現(xiàn)了 .NET 中標(biāo)準(zhǔn)的 Stream 機(jī)制,即可以使用 NetworkStream 通訊網(wǎng)絡(luò)套接字用標(biāo)準(zhǔn)的流操作進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的讀寫。讀寫管道沒有相應(yīng) 第 5 頁 共 28 頁 的流類,但有一個常見的流類 ,如果要編寫一個這樣的類,可以從這個基類繼承。 外部源常常是一個文件,但也不完全都是文件,它還可以是: 1) 網(wǎng)絡(luò),使用一定的網(wǎng)絡(luò)協(xié)議與網(wǎng)絡(luò)上其它計算機(jī)或終端交換數(shù)據(jù)。 流 流的基本概念 流的概念已經(jīng)存在很長時間了。 套接字的第二層含義表示一個用于在進(jìn)程間進(jìn)行通信的終端。第一個含義是套接字編程 API,它最初由伯克利大學(xué)為 BSD UNIX 而創(chuàng)建。接收消息后,總是返回 ACK 消息??蛻魬?yīng)用程序可以將動態(tài)端口號作為本地端口使用。 使用 TCP 協(xié)議的應(yīng)用層協(xié)議包括 HTTP、 FTP、 SMTP 和 Tel 等。和 OSI 的 7 層協(xié)議相比,TCP/IP 協(xié)議只有 4個層次。網(wǎng)絡(luò)通信協(xié)議設(shè)計的基本原則是層次化,層和協(xié)議的集合被稱為網(wǎng)絡(luò)體系結(jié)構(gòu)。但是微軟并沒有打算放棄 VC++.NET,相反,微軟對 VC++.NET 有著另一番獨特的打算,VC++.NET 的定位與 C不完全重合, VC++.NET 應(yīng)用范圍仍強(qiáng)于 C,這一點無論對微軟公司還是軟件業(yè)應(yīng)用現(xiàn)狀都非常重要。 微軟為了推行 .NET 戰(zhàn)略,特別為 .NET 平臺設(shè)計了一種語言 —— C。此外, tencent 的即時 通信 ,也是做的很好的,從某中程度上來說,代表了國內(nèi)最高的水平。至于 ie,是在 Visual c++下開發(fā)的產(chǎn)品,雖然有嚴(yán)重 的安全隱患,不過,至少能在某種程度上代表當(dāng)今國際研究的水平。這些都是在應(yīng)用層面的開發(fā)工具。當(dāng)然, ie,同樣也不是很受人青睞,這讓人想起了,當(dāng)年的網(wǎng)景公司,網(wǎng) 景只是生不逢時。于是,這些媒體的分別變的越來越模糊。 1996 年 11 月, ICQ 是首個廣泛被非 UNIX/Linux使用者用于因特網(wǎng)的 即時通信 軟件。 在因特網(wǎng)上受歡迎的 即時通信 服務(wù)包含了 MSN Messenger、 AOL Instant Messenger、 Yahoo! Messenger、 NET Messenger Service、 Jabber、 ICQ 與 。 即時通信 不同于 在于它的交談是實時的。 Socket。本文首先討論了同步套接字,異步套接字,多線程并發(fā)執(zhí)行任務(wù)等;然后闡述了客戶端、服務(wù)器如何使用 XML 序列化的消息進(jìn)行 通信 。使用這個統(tǒng)一的接口,可以編寫一個可移植的 TCP/IP 通信 程序。 基于 TCP協(xié)議的簡單即時通信軟件的設(shè)計與實現(xiàn) 論文作者姓名: 申請學(xué)位專業(yè): 申請學(xué)位類別: 指導(dǎo)教師姓名(職稱): 論文提交日期:
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1