C# 搭建DotNetty客戶端

以下是DotNetty開源項目

https://github.com/Azure/DotNetty

我得出的結論:(2017年3月29日)
1.DotNetty 只能通過 vs 2017 進行加載;(vs 2013添加項目後報錯:vs error : 項目的默認 XML 命名空間必須爲 MSBuild XML 命名空間
—— 去github上找是否有人提問,發現兩個關鍵信息如下圖——>於是從nuget着手!)
這裏寫圖片描述
這裏寫圖片描述

2.不能使用marshal進行通信。(Netty是可以的,通過JBoss的Marshalling進行實現。)

1.搭建測試項目(原先用winForm程序進行測試,發現不好使,不方便輸出一些信息。遂改成用ConsoleApp進行測試)
2.仿照Example文件夾中的例子進行編碼(這應該是除了網上的實例外最好的教科書了),結果發送後執行ChannelReadComplete方法但是不執行ChannelRead方法。(估計是編碼不對應的原因,server端用marshal,client端用LengthFieldBasedFrameDecoder,具體原因估計要去研究Netty了。。

關於Marshall的解決方案和探討

既然DotNetty沒有現成的Marshall,那麼有幾個思路:
1.jBoss-Marshall C# 去搜索 | 別人寫好的Marshall C#版本(找到微軟有Marshall,但是和 DotNetty 中IChannel對應不上)
2.通過JBoss-Marshall的源碼去嘗試用C#翻譯,但是發現太底層太複雜了,根本看不懂;
3.用抓包去看編碼的內容。然而基礎太弱根本沒有看懂。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章