0

这听起来可能很疯狂,但是如果我两次运行相同的进程并且我想向接收者发送两次 UDP 消息,那么接收者就知道该进程在客户端上运行了两次。这可能吗?

'Count Process

  Dim processCount As Integer = Process.GetProcessesByName("Putty").Count()

'Send Data


   Dim client As New UdpClient()
   Dim ip As New IPEndPoint(IPAddress.Broadcast, 15000)
   Dim bytes As Byte() = Encoding.ASCII.GetBytes("GotPutty")
   client.Send(bytes, bytes.Length, ip)
   client.Close()

因此,如果 Process Count = 2,那么我将如何发送“GotPutty”两次?

4

2 回答 2

1

要发送消息两次,只需调用client.Send两次。

但是,也许更好的方法是在消息中包含进程计数等数据 - 与 TCP/IP 不同,UDP 不保证是否会接收到消息,因此接收一次消息并不一定意味着只有一个进程正在运行,这可能意味着您根本没有收到第二条消息。如果知道消息已收到对您很重要,您可能希望切换到 TCP/IP,或发送确认(如果未收到,您将重试原始发送,直到您确定消息已收到通过确定)

于 2013-10-05T19:14:02.157 回答
0

我只是想建议发送发现运行的进程数而不是“GotPutty”。

或发送“Putty.exe|2”并将其拆分到 | 收到后。这样,当您收到传输时,您可以确定您拥有正确数量的进程,而不是冒丢失数据包或丢失目的地的数据包的风险......

于 2014-01-15T01:34:44.217 回答