雖然我是套接字編程的新手,但在編寫一個簡單的tcp服務器客戶端程序時,我發現基於流的api並不便於使用。.NET中是否有任何基於消息的TCP套接字庫?
我的程序是簡單地簡單:
- 客戶端連接到一個服務器
- 服務器連續地發送消息到客戶端,在一個不可預料的間隔
- 客戶機接收消息和做功根據在消息中包含
然而,使用基於流的API的數據,我必須:
- 定義消息分隔符/分隔
- 使用
while
循環讀取從流 - 的毗連的所有字節的數據,試圖找到分隔符
- 如果分隔符存在,分割數據,提取消息
這是一個很多的工作,甚至比我的程序的整個邏輯,所以我想知道ING是有圖書館可以做上面我的東西,這樣的圖書館,我可以這樣的程序:
// Server
TcpListenerEx server = new TcpListenerEx();
TcpClientEx client = server.Accept();
client.SendMessage(new StringMessage("hello world"));
// Client
TcpClientEx client = new TcpClientEx();
client.Connect("localhost", 8989);
while (true) {
IMessage message = client.ReadMesage();
// Do work acording to message
}
任何建議將受到歡迎,感謝。
WCF可能適合該法案? –
WCF雙模式是一個不錯的選擇,但它有點太「胖」,我不確定最終的部署環境可能有.NET 3.5框架。 – otakustay