2012-12-04 36 views
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 
    
+0

你想讓你的輸出看起來像什麼? – garyh

+0

如果我「玩耍」,我會使用正則表達式來解析響應。在您的正則表達式中,您可能會補償可選空格/換行符等。 也許您可以爲不同的響應類型創建響應和子類的抽象類? – mortb

+0

順便說一句,有關RTSP的維基百科文章看起來不錯:http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol – mortb

回答