?? readme.txt
字號:
UDP安全傳輸(完整源碼)
大家都知道UDP比TCP好用發送速度快很多,程序寫起來也簡單的多,可缺點也同樣明顯UDP容易丟包,而且不能自動重發也不能自動組包沒有數據安全機制,發的包不能超過2K(INDY,NMUDP等控件都是這樣)否則就出錯。
可很多需求中又需要發送大量數據包并且需要保證速度(如語音和視頻通訊或者點對點點播服務。)而且有些重要的數據不允許丟包這個時候就需要安全UDP了。
有朋友可能會說那你干嘛不用TCP?TCP不就是安全的UDP嗎?
主要因為
1、TCP無法很好的穿透NAT,來進行點對點通訊。
2、通訊過程中需要某些重要的命令不丟失,TCP需要首先建立連接,每個包都需要確認。這樣發送速度會慢不少。
所以偶需要一個安全的UDP可以發送任意大小包,可以保證某些重要的包不會丟失,并且可以輕松穿透NAT來進行點對點通訊。
網上四處尋找未果SO自己動手寫了一個。具有以下功能(本類是站在前人的肩膀上實現,基類為偶稍加修改過的NMUDP)
1、自動分包組包
2、支持一次性發送任意大小的包
3、支持安全控制
4、根據丟包率和網速度動態控制發包速度(因時間的局限此功能未很好的實現)
5、對于用戶透明的接口(開發人員不用關心實現細節可以和使用其它UDP控件一樣簡單的使用本類)
接口的簡單說明,使用本類很簡單
當想要發送大數據包或者具有安全控制的數據包就使用方法
SafeSendBuff
即可:)
當然接收方必須使用本類(即服務端。因為偶需要自動處理分包、組包、重發等細節)
給事件成員OnDataCase付值即可該事件是接收到數據時觸發
具體使用方法請見演示程序
DemoClient.exe 為接收窗體
DemoServer.exe 為發送窗體
發送202575字節的東東需要3秒時間:(
聽同事說C++有不少此方面的代碼,不過我找了DELPHI方面的沒找到。
現在安全控制時的發送速度比較慢因為智能根據網絡流量調整的功能還沒時間去弄。
安全UDP的用途十分廣泛,希望對此有興趣的朋友能和偶一起完善它。
偶準備把它用于點對點通訊程序上:)
http://www.2ccc.com/article.asp?articleid=3154
最后支持DELPHI,支持盒子,支持開源,共同提高、共同進步!
本代碼為免費代碼,您可以隨意的修改和傳播它:)只是希望在改進它后給偶一份改進后的代碼。
開發者 馬敏釗 QQ 22900104 MAIL: mmzmagic@sina.com
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -