多年代码搬运工 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日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?