日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Grizzly NIO框架 理論篇 【4】

系統(tǒng) 2237 0

Port Unification Overview(端口統(tǒng)一)

針對(duì)在一個(gè)端口上開放多種協(xié)議的服務(wù),類似下圖:
""
通過Port unification Filter去判斷三種協(xié)議,然后針對(duì)不同協(xié)議傳遞到下一個(gè)Filter執(zhí)行后續(xù)工作。
其中Finder的Grizzly官方給了一個(gè)簡(jiǎn)單用例,針對(duì)協(xié)議包頭是"add"的Finder
  1. /**
  2. * {@link ProtocolFinder}, responsible to determine if incoming byte buffer
  3. * represents ADD-service request.
  4. */
  5. public class AddProtocolFinder implements ProtocolFinder {
  6. private final static byte [] magic = { 'a' , 'd' , 'd' };
  7. /**
  8. * {@inheritDoc}
  9. */
  10. @Override
  11. public Result find ( final PUContext puContext , final FilterChainContext ctx ) {
  12. // Get the input Buffer
  13. final Buffer inputBuffer = ctx . getMessage ();
  14. final int bytesToCompare = Math . min ( magic . length , inputBuffer . remaining ());
  15. final int bufferStart = inputBuffer . position ();
  16. // Compare incoming bytes with ADD-service protocol magic
  17. for ( int i = 0 ; i < bytesToCompare ; i ++) {
  18. if ( magic [ i ] != inputBuffer . get ( bufferStart + i )) {
  19. // If at least one byte doesn't match - it's not ADD-service protocol
  20. return Result . NOT_FOUND ;
  21. }
  22. }
  23. // if we check entire magic - return FOUND, or NEED_MORE_DATA otherwise
  24. return bytesToCompare == magic . length ?
  25. Result . FOUND : Result . NEED_MORE_DATA ;
  26. }
  27. }
這個(gè)簡(jiǎn)單例子應(yīng)該明白怎么判斷了吧,然后就是轉(zhuǎn)到對(duì)應(yīng)的協(xié)議
?
-------------------------------
理論學(xué)習(xí)暫且到此為止,水平實(shí)在有限,本人僅使用了基礎(chǔ)功能,所以大部分?jǐn)U展都沒有去學(xué)習(xí),希望有高人可以補(bǔ)充
?





Grizzly NIO框架 理論篇 【4】


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 茌平县| 棋牌| 肥城市| 桂平市| 台东市| 东港市| 九龙坡区| 周至县| 汉源县| 平顶山市| 曲阳县| 黄平县| 沾化县| 东阿县| 恩施市| 莒南县| 新巴尔虎右旗| 丽江市| 兴国县| 威海市| 霞浦县| 芦山县| 寻乌县| 博乐市| 墨竹工卡县| 德州市| 阿克苏市| 汶川县| 恭城| 镇原县| 开远市| 阿尔山市| 隆子县| 云阳县| 广水市| 祁门县| 深泽县| 友谊县| 个旧市| 瑞金市| 于田县|