这可能听起来很疯狂但是如果我运行相同的进程两次并且我想要向接收器发送两次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”?
答案 0 :(得分:1)
要发送消息两次,只需拨打client.Send
两次。
然而,也许更好的方法是在消息中包含数据,例如进程计数 - 与TCP / IP不同,UDP不保证是否将接收消息,因此接收消息一次不一定只意味着一个进程正在运行,这可能意味着第二条消息根本无法联系到您。如果您知道收到的消息很重要,您可能希望切换到TCP / IP,或发送确认(如果没有收到,您将重新尝试原始发送,直到您确定消息得到通过ok)
答案 1 :(得分:0)
我只是想建议发送运行的进程数而不是“GotPutty”。
或发送“Putty.exe | 2”并将其拆分为|收到后 这样,当您收到传输时,您确信您拥有正确数量的进程,而不是冒着丢失数据包或丢失其目的地的数据包的风险......