程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#編寫的基於Socket的異步通訊零碎--SanNiuSignal.DLL已開源

c#編寫的基於Socket的異步通訊零碎--SanNiuSignal.DLL已開源

編輯:C#入門知識

c#編寫的基於Socket的異步通訊零碎--SanNiuSignal.DLL已開源。本站提示廣大學習愛好者:(c#編寫的基於Socket的異步通訊零碎--SanNiuSignal.DLL已開源)文章只能為提供參考,不一定能成為您想要的結果。以下是c#編寫的基於Socket的異步通訊零碎--SanNiuSignal.DLL已開源正文


參考頁面:

http://www.yuanjiaocheng.net/CSharp/csharp-Static.html

http://www.yuanjiaocheng.net/CSharp/csharp-Anonymous-method.html

http://www.yuanjiaocheng.net/CSharp/csharp-nullable.html

http://www.yuanjiaocheng.net/CSharp/csharp-var.html

http://www.yuanjiaocheng.net/CSharp/csharp-linq.html

自從推出了SanNiuSignal.DLL,用戶反映還是滿好的;為了更好的服務於大家,我曾經修復了很多BUG,同時把這個DLL開源;上面就先來引見下

運用這個DLL開收回的復雜的通訊零碎;如圖:

 

想運用哪個模塊就啟動哪個模塊,可以和客戶構成通訊; 百度網盤下載地址:http://pan.baidu.com/s/1i346GML   外面包括了SanNiuSignal.DLL的源碼以及它的一個運用例子;有不會的請加QQ群:426414437交流,當前更新

的DLL就在群裡發布了.......上面是關於SanNiuSignal.DLL的源碼詳細引見

SanNiuSignal是一個基於異步socket的完全收費DLL;它外面封裝了Client,Server以及UDP;有了這個DLL;用戶不必去關懷心跳;粘包 
;組包;發送文件等繁瑣的事情;大家只需復雜的幾步就能完成弱小的通訊零碎;能協助到大家是自己覺得最幸福的事情,也希望大家 
在用的進程中找出DLL中缺乏的中央;好矯正;此DLL的蘋果版和java版正在努力開發中......

上面為大家引見一下 如何運用SanNiuSignal.

1 ) :TCPServer服務器,經過靜態辦法TxStart.startServer注冊成功服務器ITxServer;然後經過ITxServer設置好各種屬性;最後啟動 
ITxServer.StartEngine();就可以了;詳細可以到demo裡去看;絕對來說比擬復雜,上面來說一下需求留意的中央 
一:ITxServer.BufferSize,就是接納數據緩沖區大小;默許為1kb,不要小於50字節,而且要和客戶端設置成一樣;否則會呈現不可預知 
的錯誤;這個緩沖區的大小,不會影響你每次發送數據的大小;大小只能進步你的發送速度
二:ITxServer.sendMessage 發送前先判別此IPEndPoint客戶端能否在線;由於假如不在線等狀況發作;此辦法沒有任何音訊發生;如 
果發送成功並且對方曾經收到;會觸發發送成功的事情;
三:用戶可以經過ITxServer.FileLog記載服務器的運轉信息;

2 ) :TCPClient客戶端,經過靜態辦法TxStart.startClient(服務器地址或網址, 服務器端口號)注冊成功客戶端ITxClient;然後經過 
ITxClient設置好各種屬性;最後啟動ITxClient.StartEngine();跟服務器啟動差不多;詳細可以到demo裡去看;客戶端要留意的一些地 

一:假如非服務器強迫封閉客戶端的狀況下,掉線的話,客戶端默許是要重連的;他的原理是這樣的,每10秒重連一次;重連 
ITxClient.ReconnectMax次假如失敗;會自動封閉客戶端引擎;在重連的進程中;你可以改動客戶端銜接服務器的IP地址和端口號;但 
假如當斷開的時分不想重連;可以設置ITxClient.ReconnectMax=0;
二:登錄篇,在引擎啟動之前,用戶可以設置ITxClient.OutTime來設置超時時間;默許為10秒,也就是說10秒之內一定會有一個登錄後果 
;登錄成功或登錄失敗。有了登錄後果會觸發登錄後果事情;

3 ) :Udp引擎,經過靜態辦法TxStart.startUdp()注冊成功UDP--IUdpTx;然後經過IUdpTx設置好各種屬性;最後啟動 
IUdpTx.StartEngine();假如在啟動之前要綁定端口號,請在這裡設置IUdpTx.Port;否則是隨機運用本地端口;無論是UDP還是服務器和 
客戶端;它們的很多辦法和屬性以及事情都是相反的,由於他們都承繼了通訊零碎的基接口ITxBase;上面是UDP引擎要留意的中央
一:UDP的優勢在於速度快但不太牢靠;所以有些屬性不能設置的太過,如IUdpTx.BufferSize;默許為1KB,假如在廣域網上發送信息, 
緩沖區大小不要超越默許值;否則數據會喪失,假如一次性數據大於1KB;也沒事,零碎會自動分包發送;不太會丟包。

4 ) :文件發送零碎,經過靜態辦法FileStart.StartFileSend(IFileSendMust)生成一個文件發送零碎IFileSend;其中IFileSendMust是 
必需完成的一個接口;詳細參照demo;然後經過IFileSend設置好各種屬性;發送還是要經過後面的三個引擎零碎發送的;如 
ITxClient.SendFile 這時會前往一個文件標簽,是一個整數;IFileSend可以經過操作這個標簽來操作這個正在發送的文件;接納文件 
零碎也一樣;也是經過文件標簽來操作;文件續傳也是一樣,也要經過後面的三個通訊引擎零碎停止續傳;由於文件零碎不能決議用戶 
經過哪個通訊零碎停止續傳的;例如IUdpTx.ContinueFile停止續傳;大家也可以試一下 掉線之後重新銜接也可以續傳;

5 ) :文件接納零碎,經過靜態辦法FileStart.StartFileReceive(IFileReceiveMust)生成一個文件接納零碎IFileReceive;其中 
IFileReceiveMust是接納方必需完成的一個接口;詳細參照demo;然後經過IFileReceive設置好各種屬性;上面來講講文件零碎要留意 
的幾個要點
一:每個文件都有一個文件標簽,發送零碎和接納零碎是經過控制這個標簽來控制這個文件的;假如是同一個文件傳輸,標簽也一樣的;
二:要留意屬性BufferSize緩沖區大小,他是代表一次傳送的字節數;假如這個文件緩沖區越大,傳輸速度越快;詳細要設置成多少,大 
家自己去調試;TCP傳輸的話普通可以設置成比擬大,但UDP的話這個不要超越1KB;所以傳輸大文件盡量不要用UDP這種不牢靠的東東;
三:當網絡等各種緣由中綴文件的時分;會觸發文件中綴事情;文件自動處於暫停發送或接納形態;等候續傳;續傳的發送方,假如對方 
贊同續傳;對方將不會觸發續傳開端的辦法;別的大家可以經過demo裡去發現;


總結:
其實這個DLL絕對來講是比擬復雜的;大家只需掌握這五個接口;1:ITxServer TCP服務器接口 2:ITxClient TCP客戶端接口 3:IUdpTx 
UDP接口 4:IFileSend 文件發送方接口 5:IFileReceive 文件接納方接口 後面三個接口是經過TxStart啟動;前面二個文件接口 
是經過FileStart啟動

明天先講到這裡;希望這個DLL對大家有所協助;缺乏之處希望經過QQ或博客園大家一同交流;謝謝

此演示源碼下載地址:http://pan.baidu.com/s/1i346GML 外面包括了SanNiuSignal.DLL

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved