多年代码搬运工 2022-09-04 01:07 采纳率: 60%
浏览 44
已结题

关于#WPF#的问题,如何解决?

刚接触VB没几天,我这有一段WPF的项目代码,希望能帮我解读一下第一段代码的相关语法,要是能参照其他语言解读更好



```vb.net
 tcpHelper1 = New TcpHelper(theSetting.TheEndPiont1) With {.DataHandler = Function(Data As String, sourceSocket As Socket) As Integer
                                                                                     Debug.WriteLine(Data)
                                                                                     For Each m As Match In Regex.Matches(Data, "#[0-9a-zA-Z]{39}")
                                                                                         'Debug.WriteLine(m.Value)
                                                                                         Dim id As String = m.Value.Substring(21, 10)
                                                                                         '回应并过滤掉心跳包
                                                                                         If Regex.IsMatch(id, "0{10}") Then
                                                                                             Dim buffer() As Byte = Encoding.UTF8.GetBytes("#ACK " & Now.ToString("yyyy/MM/dd HH:mm:ss"))
                                                                                             sourceSocket.Send(buffer)
                                                                                             Return 0
                                                                                         End If
                                                                                         Dim timeStr As String = m.Value.Substring(9, 12)
                                                                                    
                                                                                         'Debug.WriteLine(ftimestr)
                                                                                         Dim time As Date = Convert.ToDateTime(ftimestr)
                                                                                         Debug.WriteLine("卡号:" & id & "时间:" & time.ToString)
                                                                                         Me.Dispatcher.Invoke(Sub()
                                                                                                                  If viewData.Data.Select(Function(i) i.Rfid).Contains(id) Then
                                                                                                                      Dim curMan As SportsMan = viewData.Data.Where(Function(i) i.Rfid = id).First
                                                                                                                      If curMan.Didnotfinish = False Then
                                                                                                                          If (time - curMan.LastTagTime1).TotalSeconds > CInt(theSetting.MinTime) Then
                                                                                                                              If curMan.Round1 < theSetting.TotalRounds Then
                                                                                                                                  curMan.Round1 += 1
                                                                                                                                  If theSetting.ShowRound1 = True Then viewData.Data = New ObservableCollection(Of SportsMan)(viewData.Data.OrderByDescending(Function(i)
                                                                                                                                                                                                                                                                  Return i.Round1
                                                                                                                                                                                                                                                              End Function).OrderBy(Function(i) i.Didnotfinish).Select(Function(i, index)
                                                                                                                                                                                                                                                                                                                           i.Order = index + 1
                                                                                                                                                                                                                                                                                                                           Return i
                                                                                                                                                                                                                                                                                                                       End Function))
                                                                                                                                  curMan.LastTagTime1 = time
                                                                                                                              End If
                                                                                                                          End If
                                                                                                                      End If
                                                                                                                  End If
                                                                                                              End Sub)
                                                                                     Next
                                                                                     Return 0
                                                                                 End Function}
        Try
            tcpHelper1.Start()
        Catch ex As Exception
            status_Txb1.Text = ex.Message
        End Try

```

  • 写回答

1条回答 默认 最新

  • 会敲键盘的肘子 .Net领域优质创作者 2022-09-04 19:42
    关注

    解析TCP的包,没39个字符一个包

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月22日
  • 已采纳回答 9月22日
  • 创建了问题 9月4日

悬赏问题

  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目
  • ¥15 利用pthon计算薄膜结构的光导纳