1
我目前正試圖解析RTSP消息,通常看起來像下面的代碼字段(取自RF2326)的示例。但是我遇到因爲莫名其妙的不規則結構的消息的,也弱定義分隔符等幾個問題查詢字符串與不可靠/不規則結構(與LINQ?)
這方面的一些想法:
- 通過線通過串線步進:但是如果一個命令/參數分成兩行?
- 將字符分割爲鍵/值分析的某些字符 - >我必須確保第一次出現例如':'是鍵/值的分隔符。
- 按空格(「」)分割線條,但也可能發生如CSeq:312(無空格)的線條。
另外:我只能假設標題部分(直到在例子中的內容長度)從身體分開(\r\n
)。如果只有一個呢?
有沒有辦法解決這個優雅可靠?也許與LINQ?
客戶端 - >服務器:
DESCRIBE rtsp://server.example.com/fizzle/foo RTSP/1.0 CSeq: 312 Accept: application/sdp, application/rtsl, application/mheg
服務器 - >客戶端:
RTSP/1.0 200 OK CSeq: 312 Date: 23 Jan 1997 15:35:06 GMT Content-Type: application/sdp Content-Length: 376 v=0 o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 s=SDP Seminar i=A Seminar on the session description protocol u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps [email protected] (Mark Handley) c=IN IP4 224.2.17.12/127 t=2873397496 2873404696 a=recvonly m=audio 3456 RTP/AVP 0 m=video 2232 RTP/AVP 31 m=whiteboard 32416 UDP WB a=orient:portrait
你想讓你的輸出看起來像什麼? – garyh
如果我「玩耍」,我會使用正則表達式來解析響應。在您的正則表達式中,您可能會補償可選空格/換行符等。 也許您可以爲不同的響應類型創建響應和子類的抽象類? – mortb
順便說一句,有關RTSP的維基百科文章看起來不錯:http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol – mortb