我有一臺設備通過特定的端口向我發送數據。數據採用XML格式。從TCP端口套接字讀取XML數據
現在我已經做了一個小的控制檯應用程序,它監聽數據並在屏幕上打印數據。
現在我的計劃是反序列化xml數據,否則我會在數據庫中創建insert語句。
1)設備每秒向我發送數據(如果有數據要發送給我)。 2)我不能說設備將發送給我多少數據。
我怎樣才能確保捕獲所有數據,而無需任何鬆動的信息..
準備討論?
代碼C#或VB.NET
我有一臺設備通過特定的端口向我發送數據。數據採用XML格式。從TCP端口套接字讀取XML數據
現在我已經做了一個小的控制檯應用程序,它監聽數據並在屏幕上打印數據。
現在我的計劃是反序列化xml數據,否則我會在數據庫中創建insert語句。
1)設備每秒向我發送數據(如果有數據要發送給我)。 2)我不能說設備將發送給我多少數據。
我怎樣才能確保捕獲所有數據,而無需任何鬆動的信息..
準備討論?
代碼C#或VB.NET
每XML文檔,則需要直到找到一個匹配的根端元素從流套接字汽車無讀取;
<?xml version='1.0' encoding='utf-8'?><rootElement> ... </rootElement>
完成,並等待下一個文件。
你有任何代碼片段? – 2010-06-02 11:30:27
正如Hans Passant所指出的那樣,TCP是爲準確交付而設計的。要接收連接期間發送的所有tcp數據(聽起來像你的情況),請使用我的答案中的代碼C# performance methods of receiving data from a socket?。
一旦你收到所有的字節,你可以做典型的文本轉換,例如string stringData = Encoding.UTF8.GetString(bytes);
TCP是爲防止數據丟失的明確原因而設計的。你需要解釋你爲什麼認爲它不適合你。一秒約爲20億個CPU週期。 – 2010-06-02 12:34:07