从TCP端口解析文本字符串

时间:2015-01-22 11:14:47

标签: vb.net

我有一个TCP侦听器,用于侦听来自我们电话系统的端口上的流量。

我设置了套接字连接时它会保持返回数据。我有一个名为returndata的字符串,有时它会返回以下内容:

004 HELD    300 8817feb0-a4d8-4a04-8d6b-b4f26b282da4    2ddfe42f-8c42-4373-99e6-8baeaad9bb6f    I   300 53  95e10b5e-2c52-4eff-b43b-5f761f23f35c

但有时候,根据流量的数量,它可以返回:

002 VERS    3
003 HEAD    Device  Connection  Call    Direction   Caller  Called  Trunk   Channel EquipmentId UserId
004 HELD    300 8817feb0-a4d8-4a04-8d6b-b4f26b282da4    2ddfe42f-8c42-4373-99e6-8baeaad9bb6f    I   300 53  95e10b5e-2c52-4eff-b43b-5f761f23f35c    
005 CONN    265 349c9a1b-2e29-4037-9361-cb6c7a384f96    bb902ab8-c356-4cb0-aa65-0c10da857cc1    O   265 07710627585 45  95e10b5e-2c52-4eff-b43b-5f761f23f35c    
006 RING    453 95071123-254f-4e59-a6b2-c8a409d45fd1    5c448dec-ffe1-4862-8a89-9df6636410e2    I   01223894462 1126    50  95e10b5e-2c52-4eff-b43b-5f761f23f35c    

我需要解析字符串,以便返回每一行(一行由开头定义(001,002,003等) - 为了您的信息,在循环回来之前最多可以达到9999。

我需要将每个解析为字符串或数组,以便我可以将它们连接到我的VB.NET Enqueue(Queue)。

每条'线'需要分开。

1 个答案:

答案 0 :(得分:0)

管理得到一个解决方案,这些行是流中的新行,所以我刚刚做了:

ParsedData = returndata.Split(New String() {Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries)

                For Each s As String In ParsedData
                    If CheckForAlphaCharacters(s) = True Then
                        ReturnDataQueue.Enqueue(s)
                    End If
                Next s

感谢您的帮助!

JML