查询字符串具有不可靠/不规则的结构(使用LINQ?)

时间:2012-12-04 09:53:32

标签: c# string linq parsing rtsp

我目前正在尝试解析RTSP消息,这些消息通常类似于下面代码字段中的示例(取自RF2326)。但是我遇到了几个问题,因为消息的结构不规则,也有弱定义的分隔符等。

对此的一些想法:

  • 逐行逐步执行字符串:但是如果命令/参数被分成两行呢?
  • 通过某些字符拆分行进行键/值解析 - >我必须确保第一次出现例如':'是键/值的分隔符。
  • 用空格(“”)分割线条 - 但也可以出现像CSeq:312(没有空格)这样的线条。

另外:我只能假设标题部分(直到示例中的Content-Length)从正文分隔为break(\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
    e=mjh@isi.edu (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
    

1 个答案:

答案 0 :(得分:0)

您可以使用我的库解析SDP ...

查看@ https://net7mma.codeplex.com/

这里还有一篇文章解释它 - > http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

如果您还有其他需要,请告诉我们!