• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于P2P的即時消息傳遞軟件

      2010-06-13 11:32:54徐江紅
      微處理機 2010年3期
      關鍵詞:監(jiān)聽控件消息

      徐江紅

      (北京電子科技職業(yè)學院,北京100176)

      1 引言

      互聯(lián)網正影響著世界的每一個角落,極大的改變著人們的生活。互聯(lián)網本身也在飛速發(fā)展,各種新技術層出不窮。即時消息傳遞(Instance Messaging,MI)就是互聯(lián)網上一種頗受歡迎的新業(yè)務。所謂即時消息就是為用戶提供了一種方便快捷的通過Internet與朋友交流的方式,通過它人們可以在線交談、互傳文件、語音對話及進行視頻會議,甚至用手機雙向交流。未來即時消息的功能還會包括股票交易、在線購物、企業(yè)采購與調撥等電子商務運作。即時消息在發(fā)展初期更多地以其娛樂性引起了人們的關注,而現在其快速增多的企業(yè)用戶表明這一技術已經被開始融入到現代商務活動中。即時消息傳遞的一個特點就是方便快捷,非常適用于短消息的傳送,另一個優(yōu)點就是安全可靠,保護隱私和機密,可以防止不需要的信息進入,保護自己不被打擾。

      目前即時消息發(fā)展存在的最突出問題就是相關通信協(xié)議和標準的不統(tǒng)一,即各個即時消息軟件由于采用不同的語言和協(xié)議標準而無法相互通信。雖然到目前為止還沒有完全統(tǒng)一的標準協(xié)議,但作為一種基于IP技術的通信基礎軟件,即時消息最終成為開放式的在線通信工具肯定是大勢所趨。即時消息已經成為語音及文本在線實時通信的主要技術,它必將成為未來移動商務、在線協(xié)作及Internet應用的核心,同時也將繼承IP技術的開放風格,扮演比電子郵件更為重要的角色。

      2 P2P技術

      P2P(Peer-to-Peer)對等互聯(lián)或點對點技術。P2P技術可以讓用戶直接連接到其他用戶的計算機,進行文件共享與交換,同時P2P在深度搜索、分布計算、協(xié)同工作等方面也大有用途。P2P是一種用于不同PC用戶之間,不經過中繼設備直接交換數據或服務的技術,它允許Internet用戶直接使用對方的文件。每個人可以直接連接到其他用戶的計算機,并進行文件交換,而不需要連接到服務器上再進行瀏覽與下載。

      純點對點網絡沒有客戶端或服務器的概念,只有平等的同級節(jié)點,同時對網絡上的其它節(jié)點充當客戶端和服務器。這種網絡設計模型不同于客戶端-服務器模型,在客戶端-服務器模型中通信通常來往于一個中央服務器。目前Internet的存儲模式是“內容位于中心”,而P2P技術的運用將使Internet上的內容向邊緣移動。這將帶來以下改變:首先,客戶不再需要將文件上傳到服務器,而只需要使用P2P與其他計算機進行共享;其次,使用P2P技術的計算機不需要固定的IP地址和永久的Internet連接,這使得占有極大比例的撥號上網用戶也可以享受P2P帶來的變革?;诖?,我們采用C#作為開發(fā)工具,采用P2P技術開發(fā)了一個即時消息傳遞軟件。

      3 系統(tǒng)設計

      C#作為微軟.Net戰(zhàn)略的重要組成部分,其對網絡編程提供了很好的支持和優(yōu)化。本文實時消息傳遞軟件的設計,很直觀地給出了P2P(點對點)編程以及套接口編程的基本知識和概念。它是建立在TcpListener以及TcpClient這兩個類基礎上的,軟件中同時采用了多線程技術和P2P技術重返“非中心化”的基本原則。因此采用這個軟件可以在網絡中發(fā)送、接收消息,任何一臺計算機既可以作為服務器端,又可以作為客戶端。

      3.1 界面設計

      參照ICQ、OICQ等聊天工具,系統(tǒng)設計時可以將程序的主界面布置成和常見聊天工具的消息發(fā)送對話框類似的布局。不過由于程序僅有一個主界面,所以還要添加一些諸如“開始監(jiān)聽”、“停止監(jiān)聽”等控制按鈕。同時,程序是支持昵稱顯示的。于是,按照這個思路來布置程序的主界面。首先,往主界面上拖放如下一些控件:兩個Label控件、三個Button控件、三個TextBox控件、一個RichTextBox控件以及一個StatusBar控件。系統(tǒng)主界面如圖1所示。

      3.2 系統(tǒng)實現原理

      由于該程序用到了許多網絡編程所需的對象以及輸入輸出對象,又運用了多線程編程機制,所以在程序的開始處需要添加如下一些名字空間:

      using System.IO;

      using System.Net.Sockets;

      using System.Threading;

      程序運行時,用戶首先單擊“開始監(jiān)聽”按鈕,啟動監(jiān)聽程序,系統(tǒng)進入監(jiān)聽狀態(tài),狀態(tài)欄有相應的顯示。這樣,本機就相當于“服務器/客戶機”模式中的服務器了,其他計算機通過IP地址連接到本機,并且可以向本機發(fā)送消息。C#對網絡編程有良好的支持性能,所以程序員的工作量是比較小的。由于該軟件采用P2P模式,所以只要另一臺計算機的用戶也按下"開始監(jiān)聽"按鈕,那臺計算機也成了對應計算機的服務器了。此時就可以實現消息互發(fā)功能,在該模式下真正的服務器是不存在的,每臺計算機都是服務器,同時每臺計算機也是客戶機,這就體現了P2P技術的"非中心化"原則。

      圖1 系統(tǒng)主界面

      系統(tǒng)中使用Listen()函數來監(jiān)聽消息,通過Send()函數來發(fā)送即時信息。系統(tǒng)中實現監(jiān)聽的核心程序代碼如下。

      函數的主體是一個try-catch語句,try部分又是一個while循環(huán),這表示只要用戶不按"停止監(jiān)聽"按鈕,程序就會一直處于監(jiān)聽狀態(tài)。監(jiān)聽的端口是3280,這個端口是可以自己定義的,只要不跟常用的端口混淆就行了。一旦程序接收到遠程計算機的一條消息,就將該消息添加到消息顯示框中(消息顯示框就是那個RichTextBox控件)。函數的catch部分是捕捉異常用的,如用戶之間設置了防火墻,就不能彼此通訊了,或是對方已經停止監(jiān)聽了,那當然就不能向它發(fā)送消息了。在系統(tǒng)中通過函數Send()實現程序發(fā)送即時消息的功能,核心代碼如下:

      該函數的主體部分也是一個try-catch語句,它先根據用戶的輸入,建立一個和遠程計算機的連接,注意其端口也為3280,而且必須是3280,這是為了和接收方端口保持一致,這樣對方才能收到這里發(fā)送的消息。接著,函數根據用戶在消息輸入框中的內容以及用戶的昵稱向遠程計算機發(fā)送消息。這樣,只要網絡無故障、遠程計算機已經處于監(jiān)聽狀態(tài),它就能接收到這里發(fā)送的消息了。當然,這里處于監(jiān)聽狀態(tài)了,遠程的計算機也可以自如地往這里發(fā)消息。函數的catch部分也是用于捕捉一些異常的。

      程序運行如圖2所示。

      圖2 軟件運行效果圖

      在該軟件中還可以添加消息存盤與消息上傳功能,可以將即時消息上傳到指定的郵箱,同時還可以添加軟件背景修改等個性設計,通過不斷的修改與完善,一個功能強大的即時消息軟件不僅可以在局域網內運行,同樣可以在互聯(lián)網上運行。

      4 結束語

      利用P2P技術的基本特性不但可以實現點對點通信,同時利用P2P技術與多線程技術相結合,我們還可開發(fā)出功能強大的能穿過防火墻進行通訊的軟件程序。在即時消息系統(tǒng)的發(fā)展過程中,如何保障系統(tǒng)安全、為用戶提供可靠服務同樣重要。一個即時消息系統(tǒng)可能會保存數億用戶的個人信息,如何保證這些信息的安全將是一個長期課題。即時消息系統(tǒng)作為一種服務方式,如果能夠真正與Web服務緊密結合,必將獲得更大的市場價值。加強應用軟件與網站平臺的融合,實現資源的優(yōu)勢互補和服務內容的整合,通過交替推出新的應用軟件和完善服務內容的方式,擴大網站的影響力,并同時獲得更多的應用軟件用戶。未來基于P2P和多線程的“Web+即時消息系統(tǒng)”將是即時消息傳遞軟件發(fā)展的重要趨勢。

      [1]李銀國,李萍,蔣建春.基于OSEK COM規(guī)范的消息傳輸機制優(yōu)化[J].計算機工程,2008,34(17):257 -259.

      [2]孫東,朱丹.網間進程同步與實時應用[J].電訊技術,2007,47(2):202 -205.

      猜你喜歡
      監(jiān)聽控件消息
      千元監(jiān)聽風格Hi-Fi箱新選擇 Summer audio A-401
      一張圖看5G消息
      關于.net控件數組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      網絡監(jiān)聽的防范措施
      電子制作(2017年20期)2017-04-26 06:58:02
      應召反潛時無人機監(jiān)聽航路的規(guī)劃
      消息
      消息
      消息
      局域網監(jiān)聽軟件的設計
      河南科技(2014年5期)2014-02-27 14:08:21
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      清镇市| 东丰县| 四子王旗| 柘荣县| 济宁市| 彩票| 巴里| 逊克县| 金华市| 绍兴县| 崇阳县| 嘉祥县| 宜宾县| 宁阳县| 晋宁县| 南昌县| 镇坪县| 长沙县| 宣汉县| 土默特左旗| 堆龙德庆县| 齐河县| 乌拉特前旗| 鲁甸县| 南雄市| 白玉县| 德保县| 兴仁县| 故城县| 晴隆县| 房山区| 桂林市| 上饶市| 甘孜| 平顶山市| 嘉兴市| 息烽县| 三穗县| 周至县| 白朗县| 宝清县|