国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

SuperSocket快速入門(mén)(一):什么是SuperSocket

2019-11-14 15:55:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

什么是SuperSocket

  SuperSocket(下文簡(jiǎn)稱SS)是一個(gè)輕量級(jí), 跨平臺(tái)而且可擴(kuò)展的 .Net/Mono Socket 服務(wù)器程序框架。你無(wú)須了解如何使用 Socket, 如何維護(hù) Socket 連接和 Socket 如何工作,但是你卻可以使用 SuperSocket 很容易的開(kāi)發(fā)出一款 Socket 服務(wù)器端軟件,例如游戲服務(wù)器,GPS 服務(wù)器, 工業(yè)控制服務(wù)和數(shù)據(jù)采集服務(wù)器等等。

功能特點(diǎn)

  • 高性能的事件驅(qū)動(dòng)通信;
  • 非常簡(jiǎn)單易用; 你只需要通過(guò)創(chuàng)建幾個(gè)類就能獲得一個(gè)健壯的 Socket 服務(wù)器;
  • 內(nèi)置的命令行協(xié)議讓你能夠迅速創(chuàng)建一個(gè)網(wǎng)絡(luò)命令行接口服務(wù)器;
  • 強(qiáng)大且高性能的協(xié)議解析實(shí)現(xiàn)工具幫你簡(jiǎn)化了網(wǎng)絡(luò)數(shù)據(jù)的分析工作;
  • 靈活的配置功能和友好的配置 API;
  • 多監(jiān)聽(tīng)器支持; 讓你在一個(gè)服務(wù)器實(shí)例內(nèi)監(jiān)聽(tīng)多個(gè)端口;
  • 多服務(wù)器實(shí)例托管的支持讓你從容面對(duì)復(fù)雜的部署需求;
  • 應(yīng)用程序域和進(jìn)程級(jí)別的隔離能夠滿足你大部分的宿主場(chǎng)景;
  • 內(nèi)置的 SSL/TLS 加密支持;
  • 會(huì)話級(jí)別的發(fā)送隊(duì)列能夠讓你通過(guò)會(huì)話并發(fā)的發(fā)送數(shù)據(jù),并保持高性能和可控性;
  • SuperSocket 的命令處理模式讓你的業(yè)務(wù)邏輯更清晰,更有條理;
  • 優(yōu)良的可擴(kuò)展 API 支持: Command Filter, Connection Filter, Command Loader;
  • 可替換的日志架構(gòu)允許你使用你喜歡的日志組件;
  • 動(dòng)態(tài)語(yǔ)言的支持; 允許你用 Python 之類的腳本語(yǔ)言來(lái)實(shí)現(xiàn)命令;
  • 與 Mono/linux 保持二進(jìn)制級(jí)別的兼容;
  • Windows Azure 的支持;
  • 內(nèi)置你可以直接用于 Flash 或 Silverlight 客戶端的 Socket 策略服務(wù)器;

本人前言

  SS基于.NET IOCP的AsyncSocketEventArgs進(jìn)行開(kāi)發(fā)設(shè)計(jì),很多朋友在群里問(wèn)SS性能怎樣,我覺(jué)得這個(gè)問(wèn)題還是需要根據(jù)您自己的程序來(lái)看,如果單從例子來(lái)看,網(wǎng)上有很多AsyncSocketEventArgs的性能,也有例子,大可測(cè)試。嘿嘿。

  如果需要深入了解SS并凌駕于SS進(jìn)行開(kāi)發(fā)以及關(guān)注本人后續(xù)文章的相關(guān)內(nèi)容,需要對(duì)SOCKET、泛型、Lambda表達(dá)式以及事件驅(qū)動(dòng)有一定的了解,這些知識(shí)將不會(huì)另行講解。

  初次接觸SS的小伙伴,SS是輕量級(jí)的、基于事件驅(qū)動(dòng)級(jí)的框架,使用前請(qǐng)先看看官方網(wǎng)站上的文檔,如果您覺(jué)得看文檔是浪費(fèi)時(shí)間的話,那您還是直接使用原生Socket,AsyncSocketEventArgs或者TcpListener之類的,簡(jiǎn)單、便捷。

  很多小伙伴想使用自己的協(xié)議,那就更應(yīng)該仔細(xì)認(rèn)真的看看文檔了(使用 IRequestInfo 和 IReceiveFilter 等等其他對(duì)象來(lái)實(shí)現(xiàn)自定義協(xié)議),如果想追求快,而又搞不懂如果實(shí)現(xiàn)自定義,個(gè)人真不建議你使用SS了,同上。

SuperSocket 請(qǐng)求處理模型示意圖

  這部分已經(jīng)概括了SS的流程,只是少了一部ConnectionFilter,應(yīng)該在Client->SocketListener的時(shí)候,如果實(shí)現(xiàn)了連接過(guò)濾器會(huì)在客戶端connect的時(shí)候先進(jìn)行篩選。

在群里,很多小伙伴們經(jīng)驗(yàn)問(wèn)收不到數(shù)據(jù),這是為什么呢?首先理解什么是通信協(xié)議,簡(jiǎn)單來(lái)講,就是把收到2進(jìn)制數(shù)據(jù)轉(zhuǎn)換成規(guī)則,如上圖所示,客戶端發(fā)送一條2進(jìn)制代碼的時(shí)候,經(jīng)過(guò)ReceiveFilter的過(guò)濾,解析符合規(guī)則的2進(jìn)制內(nèi)容,并轉(zhuǎn)換成所對(duì)應(yīng)的對(duì)象,然后執(zhí)行處理。

★SS內(nèi)置了常用的一些協(xié)議,如下:

  • 命令行協(xié)議:也是AppServer的默認(rèn)協(xié)議,每條協(xié)議都以換行/r/n結(jié)束,格式:Command Arg1 Arg2 ArgN/r/n,注意:很多小伙伴都忘記了后面的/r/n。還有很多小伙伴中文會(huì)出現(xiàn)亂碼,出現(xiàn)亂碼是因?yàn)槟J(rèn)配置的textEncoding為ASCII,改成UTF-8或GBK即可。
  • 結(jié)束符協(xié)議(TerminatorReceiveFilter):與命令行協(xié)議類似,一些協(xié)議用結(jié)束符來(lái)確定一個(gè)請(qǐng)求,格式:AnyData....##,以##結(jié)尾的數(shù)據(jù)。
  • 固定數(shù)量分隔符協(xié)議(CountSpliterReceiveFilter):有些協(xié)議定義了像這樣格式的請(qǐng)求,格式:#part1#part2#part3#part4#part5#part6#part7#。 每個(gè)請(qǐng)求有7個(gè)由#分隔的部分。
  • 固定請(qǐng)求大小的協(xié)議(FixedSizeReceiveFilter):在這種協(xié)議之中, 所有請(qǐng)求的大小都是相同的。如果你的每個(gè)請(qǐng)求都是有9個(gè)字符組成的字符串,如KILL BILL
  • 帶起止符的協(xié)議(BeginEndMarkReceiveFilter):在這類協(xié)議的每個(gè)請(qǐng)求之中 都有固定的開(kāi)始和結(jié)束標(biāo)記,格式:!xxxxxxxxxxxxxx$,'!'是開(kāi)始標(biāo)記,'$'是結(jié)束標(biāo)記。
  • 頭部格式固定并且包含內(nèi)容長(zhǎng)度的協(xié)議(FixedHeaderReceiveFilter):這種協(xié)議將一個(gè)請(qǐng)求定義為兩大部分,如第一部分定義了請(qǐng)求名稱,第二部包含后面內(nèi)容的長(zhǎng)度以及第三部分的具體內(nèi)容。如:|name(4)|len(2)|content|,4字節(jié)的名稱、2字節(jié)的內(nèi)容長(zhǎng)度,具體的內(nèi)容。

官方網(wǎng)站:http://www.supersocket.net

官方文檔地址:http://docs.supersocket.net

SuperSocket用戶QQ群:373076764(500人,入群需回答正確的答案,否則一律拒絕)

======================================================================================================


上一篇:Redis常用命令

下一篇:sql刪除多項(xiàng)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌吉市| 商洛市| 武川县| 兴国县| 家居| 河曲县| 雅江县| 靖边县| 浮山县| 万全县| 太仆寺旗| 辛集市| 银川市| 南开区| 惠来县| 东方市| 杭锦后旗| 阿瓦提县| 两当县| 东山县| 绵阳市| 任丘市| 洛扎县| 永泰县| 南城县| 安陆市| 红原县| 沂水县| 蒲江县| 儋州市| 开封县| 阳春市| 大余县| 区。| 舞钢市| 北辰区| 肇源县| 黄冈市| 和平县| 抚州市| 历史|