自從推出了SanNiuSignal.DLL,用戶反映仍是滿好的;爲了更好的服務於你們,我已經修復了不少BUG,同時把這個DLL開源;下面就先來介紹下java
使用這個DLL開發出的簡單的通訊系統;如圖:服務器
想使用哪一個模塊就啓動哪一個模塊,能夠和客戶造成通訊; 百度網盤下載地址:http://pan.baidu.com/s/1i346GML 裏面包含了SanNiuSignal.DLL的源碼以及它的一個使用例子;有不會的請加QQ羣:426414437交流,之後更新網絡
的DLL就在羣裏發佈了.......下面是關於SanNiuSignal.DLL的源碼詳細介紹異步
SanNiuSignal是一個基於異步socket的徹底免費DLL;它裏面封裝了Client,Server以及UDP;有了這個DLL;用戶不用去關心心跳;粘包
;組包;發送文件等繁瑣的事情;你們只要簡單的幾步就能實現強大的通訊系統;能幫助到你們是本人以爲最幸福的事情,也但願你們
在用的過程當中找出DLL中不足的地方;好改正;此DLL的蘋果版和java版正在努力開發中......socket
下面爲你們介紹一下 如何使用SanNiuSignal.調試
1 ) :TCPServer服務器,經過靜態方法TxStart.startServer註冊成功服務器ITxServer;而後經過ITxServer設置好各類屬性;最後啓動
ITxServer.StartEngine();就能夠了;具體能夠到demo裏去看;相對來講比較簡單,下面來講一下須要注意的地方
一:ITxServer.BufferSize,就是接收數據緩衝區大小;默認爲1kb,不要小於50字節,並且要和客戶端設置成同樣;不然會出現不可預知
的錯誤;這個緩衝區的大小,不會影響你每次發送數據的大小;大小隻能提升你的發送速度
二:ITxServer.sendMessage 發送前先判斷此IPEndPoint客戶端是否在線;由於若是不在線等狀況發生;此方法沒有任何消息產生;如
果發送成功而且對方已經收到;會觸發發送成功的事件;
三:用戶能夠經過ITxServer.FileLog記錄服務器的運行信息;blog
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