[英]How to detect “EOF” in a network stream using XML protocol?
我想設計和實現基於xml的網絡協議。 我有兩台運行Java應用程序的網絡機。 一個(客戶端C)將XML工作表發送給另一個(服務器S)。 S處理一些數據,並將另一個XML表發送回C。
現在,我想使用SAX作為XML解析器。 要終止SAX的parse()
例程,必須明確定義流的末尾。 在經典的文件讀取方案中,這是微不足道的。
起初,我嘗試終止襪子以指示EOS,但隨后無法再發送任何答案。
在這個stackoverflow問題中,提出了類似的問題。 似乎存在多種解決方案:
SAXException
)。 對我來說,依靠異常終止算法似乎很糟糕……我認為這是不好的編程風格,不是嗎? 因此,您能給我一個提示,如何建立盡可能簡單和優雅的外觀嗎?
如果只是想在到達文檔末尾時停止解析,則可以檢測到在文檔的根元素上調用了endElement()
。 當然,您需要能夠識別根元素,但這應該很容易做到,只需與當前深度保持一致即可。
誠然,這無法檢測出流中是否有其他信息,但是在大多數情況下,我認為這不會成為問題。
使用HTTP來實現傳輸層,它是一個標准,在1.1版本中,它支持KeepAlive來完成您描述的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.