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

正文內(nèi)容

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

2023-06-15 12:00:21 本頁(yè)面
 

【正文】 )方法讀取網(wǎng)絡(luò)緩沖區(qū)中的數(shù)據(jù),如果調(diào)用的時(shí)候沒(méi)有數(shù)據(jù)到達(dá),那么此Readlin ( )方法將一直掛在調(diào)用上,直到讀到一些數(shù)據(jù),此函數(shù)調(diào)用才返回非阻塞(Unblock):指在執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時(shí),不管是否執(zhí)行成功,都立即返回。即可以使用NetworkStream通訊網(wǎng)絡(luò)套接字用標(biāo)準(zhǔn)的流操作進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的讀寫(xiě)。讀寫(xiě)管道沒(méi)有相應(yīng)的流類(lèi),如果要編寫(xiě)一個(gè)這樣的類(lèi),可以從這個(gè)基類(lèi)繼承。外部源常常是一個(gè)文件,但也不完全都是文件,它還可以是:1) 網(wǎng)絡(luò),使用一定的網(wǎng)絡(luò)協(xié)議與網(wǎng)絡(luò)上其它計(jì)算機(jī)或終端交換數(shù)據(jù)。 流 流的基本概念流的概念已經(jīng)存在很長(zhǎng)時(shí)間了。套接字的第二層含義表示一個(gè)用于在進(jìn)程間進(jìn)行通信的終端。第一個(gè)含義是套接字編程API,它最初由伯克利大學(xué)為BSD UNIX而創(chuàng)建。接收消息后,總是返回ACK消息??蛻?hù)應(yīng)用程序可以將動(dòng)態(tài)端口號(hào)作為本地端口使用。使用TCP協(xié)議的應(yīng)用層協(xié)議包括HTTP、FTP、SMTP和Telnet等。和OSI的7層協(xié)議相比,TCP/IP協(xié)議只有4個(gè)層次。網(wǎng)絡(luò)通信協(xié)議設(shè)計(jì)的基本原則是層次化,層和協(xié)議的集合被稱(chēng)為網(wǎng)絡(luò)體系結(jié)構(gòu)。但是微軟并沒(méi)有打算放棄VC++.NET,相反,微軟對(duì)VC++.NET有著另一番獨(dú)特的打算,VC++.NET的定位與C不完全重合,VC++.NET應(yīng)用范圍仍強(qiáng)于C,這一點(diǎn)無(wú)論對(duì)微軟公司還是軟件業(yè)應(yīng)用現(xiàn)狀都非常重要。,——C。此外,tencent的即時(shí)通信,也是做的很好的,從某中程度上來(lái)說(shuō),代表了國(guó)內(nèi)最高的水平。至于ie,是在Visual c++下開(kāi)發(fā)的產(chǎn)品,雖然有嚴(yán)重的安全隱患,不過(guò),至少能在某種程度上代表當(dāng)今國(guó)際研究的水平。這些都是在應(yīng)用層面的開(kāi)發(fā)工具。當(dāng)然,ie,同樣也不是很受人青睞,這讓人想起了,當(dāng)年的網(wǎng)景公司,網(wǎng)景只是生不逢時(shí)。于是,這些媒體的分別變的越來(lái)越模糊。1996年11月,ICQ是首個(gè)廣泛被非UNIX/Linux使用者用于因特網(wǎng)的即時(shí)通信軟件。在因特網(wǎng)上受歡迎的即時(shí)通信服務(wù)包含了MSN Messenger、AOL Instant Messenger、Yahoo! Messenger、NET Messenger Service、Jabber、ICQ與。即時(shí)通信不同于在于它的交談是實(shí)時(shí)的。 File Transfer??蛻?hù)端采用P2P方式實(shí)現(xiàn)消息傳遞,并能實(shí)現(xiàn)文件的傳輸。當(dāng)前的主流UNIX系統(tǒng)和微軟的WINDOWS系統(tǒng)都在內(nèi)核提供了對(duì)SOCKET字接口的支持。基于TCP協(xié)議的簡(jiǎn)單即時(shí)通信軟件的設(shè)計(jì)與實(shí)現(xiàn)摘 要即時(shí)通信(Instant Message),由于其具有實(shí)時(shí)性、跨平臺(tái)性、成本低、效率高等優(yōu)點(diǎn)而受到廣泛的使用。使用這個(gè)統(tǒng)一的接口,可以編寫(xiě)一個(gè)可移植的TCP/IP通信程序。本文首先討論了同步套接字,異步套接字,多線(xiàn)程并發(fā)執(zhí)行任務(wù)等;然后闡述了客戶(hù)端、服務(wù)器如何使用XML序列化的消息進(jìn)行通信。 Socket。大部分的即時(shí)通信服務(wù)提供了presence awareness的特性──顯示聯(lián)絡(luò)人名單,聯(lián)絡(luò)人是否在在線(xiàn)與能否與聯(lián)絡(luò)人交談。 這些服務(wù)有賴(lài)于許多想法更久的(與普遍)的在線(xiàn)聊天媒介,如Internet Relay Chat一樣知名。在ICQ的介紹之后,同時(shí)在許多地方有一定數(shù)量的即時(shí)通信方式發(fā)展,且各式的即時(shí)通信程序有獨(dú)立的協(xié)議,無(wú)法彼此互通。 國(guó)內(nèi)外研究現(xiàn)狀 國(guó)外研究現(xiàn)狀當(dāng)今,國(guó)際上對(duì)網(wǎng)絡(luò)通信系統(tǒng)研究的較好的公司有,思科,Sun,Ms等公司,思科主要研究的是底層的傳輸;MS,Sun公司研究的是應(yīng)用層。MS不擇手段的想打跨網(wǎng)景,可見(jiàn)其對(duì)網(wǎng)絡(luò)的重視。應(yīng)用層上的產(chǎn)品就更顯種類(lèi)繁多。此外,國(guó)際上最近出先了新的瀏覽器Firefox,其性能據(jù)說(shuō)是遠(yuǎn)高于ie,也許在網(wǎng)絡(luò)的天下,Ms又有了更強(qiáng)勁的對(duì)手。 本課題研究的意義本課題目標(biāo)是實(shí)現(xiàn)局域網(wǎng)用戶(hù)之間的即時(shí)交流和文件傳輸,通過(guò)基礎(chǔ)的網(wǎng)絡(luò)SOKET編程,為局域網(wǎng)內(nèi)部的即時(shí)通信提供一個(gè)簡(jiǎn)單而較安全的解決方案。C是由C和C++派生而來(lái)的一種“簡(jiǎn)單、流行、面向?qū)ο?、?lèi)型安全”的程序設(shè)計(jì)語(yǔ)言,其綜合了Visual basic的高效率和C++的強(qiáng)大功能,然而更多的人感覺(jué)C更類(lèi)似JAVA??梢?jiàn)++.NET在NET框架中已經(jīng)退化成了底層的語(yǔ)言了,就像C++之前的標(biāo)準(zhǔn)C語(yǔ)言一樣,以后將只有開(kāi)發(fā)底層或桌面程序的程序員使用它。相鄰層之間的接口定義了下層向上層提供的基本操作和服務(wù),下層向上層提供的服務(wù)分兩種形式:面向連接的服務(wù)和無(wú)連接的服務(wù)。通常說(shuō)的TCP/IP是一組協(xié)議的總稱(chēng),TCP/IP實(shí)際上是一個(gè)協(xié)議族,包括100多個(gè)相互關(guān)聯(lián)的協(xié)議,其中IP(Internet Protocol, 網(wǎng)際協(xié)議)是網(wǎng)絡(luò)層最主要的協(xié)議;TCP(Transmission Control Protocol,傳輸控制協(xié)議)和UDP(User Datagram Protocol,用戶(hù)數(shù)據(jù)報(bào)協(xié)議是傳輸層中最主要的協(xié)議),一般認(rèn)為IP、TCP、UDP是最根本的三種協(xié)議,是其他協(xié)議的基礎(chǔ)。TCP要求在發(fā)送數(shù)據(jù)之前必須打開(kāi)連接。服務(wù)器必須向客戶(hù)發(fā)送一個(gè)確認(rèn)(ACK)以及服務(wù)器的序列號(hào)(SYN)。如果在收到ACK之前發(fā)送方已經(jīng)超時(shí),則消息將被放到重發(fā)隊(duì)列中以再次發(fā)送。BSD套接字在經(jīng)過(guò)修改后被用作Windows環(huán)境的編程接口(并且被命名為WinSock)。在TCP/IP中,每個(gè)終端都與一個(gè)IP地址和一個(gè)端口號(hào)綁定。流是一個(gè)用于傳輸數(shù)據(jù)的對(duì)象。2) 一個(gè)指定的管道。流對(duì)外部數(shù)據(jù)源不做任何假定。它提供以下的功能:1) 一個(gè)統(tǒng)一的從網(wǎng)絡(luò)中讀取數(shù)據(jù)的方法2) ,這樣你可以很容易地移植程序。同樣調(diào)用StreamReader 類(lèi)的Readlin ( )方法讀取網(wǎng)絡(luò)緩沖區(qū)中數(shù)據(jù),不管是否讀到數(shù)據(jù)都立即返回,而不會(huì)一直掛在此函數(shù)調(diào)用上。 C/S模型客戶(hù)機(jī)/服務(wù)器模型,又稱(chēng)為Client/Server模型,簡(jiǎn)稱(chēng)C/S架構(gòu)。對(duì)于這種模式而言其中一部分需要作為服務(wù)器,用來(lái)響應(yīng)并為客戶(hù)提供固定的服務(wù);另一部分則作為客戶(hù)機(jī)程序用來(lái)向服務(wù)器提出請(qǐng)求或要求某種服務(wù)。客戶(hù)機(jī)和服務(wù)器都是獨(dú)立的計(jì)算機(jī)。采用這種結(jié)構(gòu)的系統(tǒng)目前應(yīng)用非常廣泛。即時(shí)通信協(xié)議,參與的雙方或者多方是即時(shí)通信的實(shí)體。好的協(xié)議要求清楚,完整,每一步都必須有明確的定義,并且不會(huì)引起誤解。人們多次努力,試圖統(tǒng)一各大主要 IM 供應(yīng)商的標(biāo)準(zhǔn)(AOL、Yahoo 及 Microsoft),但無(wú)一成功,且每一種 IM 仍然繼續(xù)使用自己所擁有的協(xié)議。服務(wù)器端負(fù)責(zé)監(jiān)聽(tīng)用戶(hù)連接請(qǐng)求,負(fù)責(zé)連接數(shù)據(jù)庫(kù)存儲(chǔ)用戶(hù)信息,負(fù)責(zé)發(fā)送給用戶(hù)好友信息,負(fù)責(zé)發(fā)送心跳報(bào)文檢查用戶(hù)在線(xiàn)狀態(tài)并即時(shí)讓用戶(hù)更新好友在新信息。 系統(tǒng)基本架構(gòu)基于C/S架構(gòu)的即時(shí)通信軟件便于對(duì)用戶(hù)信息進(jìn)行統(tǒng)一管理和保存,面向特定的用戶(hù),對(duì)信息的安全控制能力很強(qiáng)。3. 修改:(1) 密碼修改:應(yīng)該有密碼修改功能(2) 信息修改:可以更改一些注冊(cè)信息4. 通信:(1) 即時(shí)聊天模塊:客戶(hù)端與客戶(hù)端之間建立線(xiàn)程進(jìn)行即時(shí)聊天,也包含有簡(jiǎn)單的對(duì)稱(chēng)加解密算法功能。ER圖如下:聊天文件傳輸nn用戶(hù)ID好友ID狀態(tài)IP客戶(hù)端賬號(hào)昵稱(chēng)EmailID密碼好友分組狀態(tài)客戶(hù)端賬號(hào)昵稱(chēng)EmailID密碼好友分組IP圖3 ER圖 詳細(xì)列表數(shù)據(jù)庫(kù)包含兩個(gè)表,分別為記錄用戶(hù)信息的TCP_Userinfo和記錄用戶(hù)好友信息的TCP_Friendinfo。 private string _password。//表示注冊(cè)或者登錄信息,客戶(hù)端信息0為注冊(cè),1為登錄;服務(wù)器返回信息0為用戶(hù)已存在,1為注冊(cè)成功,2為服務(wù)器未知錯(cuò)誤,3為CLIENT在線(xiàn)檢查,10為登錄失敗,11為登錄成功 private Friend[] _friend。 } set { _nickname = value。 } set { _accounts = value。 } set { _info = value。 } set { _fn = value。服務(wù)器和客戶(hù)端都可以通過(guò)相同的代碼對(duì)UMESSAGE賦值,再通過(guò)XmlSerializer方法進(jìn)行將UMESSAGE序列化為XML文檔,最后將XML文檔轉(zhuǎn)化為網(wǎng)絡(luò)流進(jìn)行傳輸。 =。數(shù)據(jù)庫(kù)的設(shè)計(jì)和信息的傳遞辨別都是比較難實(shí)現(xiàn)的。 + uid + 39。namespace TCP{ public class FriendStruct { public struct FileInfo { public int filere。 public string nickname。//好友分組 }},我們則定義了FriendStruct的數(shù)組。 ff[i].nickname = getf[UserNickname].ToString()。 } ()。主要代碼如下: public static SqlConnection connStr = new SqlConnection(Server=D96B85DD938A465.。 public static SqlDataReader SqlReader(string sql, SqlConnection connstr) { SqlDataReader sqldr = null。 } catch (Exception e) { if (e != null) sqldr = null。 if (() == Open) ()。 } ()。如下圖:這里顯示已連入的連接圖4 服務(wù)器端界面 同步套接字網(wǎng)絡(luò)監(jiān)聽(tīng)基于同步套接字的網(wǎng)絡(luò)監(jiān)聽(tīng)器對(duì)服務(wù)器來(lái)說(shuō)并不是最好的解決方案,但是仍然可行并且實(shí)現(xiàn)簡(jiǎn)單。 ((EndPoint)ServerIPEP)。 (uc)。 byte[] chat = new byte[rect]。對(duì)反串行化后的信息進(jìn)行處理,通過(guò)info參數(shù)辨認(rèn)客戶(hù)端行為(注冊(cè)或者登錄),對(duì)注冊(cè)的信息進(jìn)行數(shù)據(jù)庫(kù)查詢(xún),注冊(cè)信息可插入,則將用戶(hù)信息插入數(shù)據(jù)庫(kù),否則返回客戶(hù)端“注冊(cè)出錯(cuò)”的信息: region 處理用戶(hù)注冊(cè)信息 if (info==0)//分辨出用戶(hù)發(fā)送的是注冊(cè)信息 { string Accounts = 。 if (usdr != null) { if (()) { region 此處寫(xiě)入返回注冊(cè)失敗的代碼 Socket sc = (Socket)alSock[(uc, 0)]。 if ((insert into TCP_UserInfo (UserAccount,UserNickname,UserEmail,JoinDate,UserIP,UserPassword) values(39。,39。,39。), ) == null) { = 1。 (d, 0, )。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1