多年代码搬运工 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 关于#linux#的问题(输入输出错误):出现这个界面接着我重新装系统,又让修电脑的师傅帮我扫描硬盘(没有问题)用着用着又卡死(相关搜索:固态硬盘)
  • ¥15 cv::resize不同线程时间不同
  • ¥15 web课程,怎么做啊😭没好好听课 根本不知道怎么下手
  • ¥15 做一个关于单片机的比较难的代码,然后搞一个PPT进行解释
  • ¥15 python提取.csv文件中的链接会经常出现爬取失败
  • ¥15 数据结构中的数组地址问题
  • ¥15 maya的mel里,怎样先选择模型A,然后利用mel脚本自动选择有相同名字的模型B呢。
  • ¥15 Python题,根本不会啊
  • ¥15 会会信号与系统和python的来
  • ¥15 关于#python#的问题