使用下面的代码进行通信报错, 客户端报,向一个无法连接的网络尝试了一个套接字操作,假定我本机的IP是 172.18.11.151
1. 在项目服务端的AfterOpenProject事件中设置代码:
If UDPClients.Count = 0 Then
UDPClients.Add("UDP1",new UDPClient("UDP1") )
End If
UDPClients("UDP1").IP = "127.0.0.1" '这里是指向自己
UDPClients("UDP1").Port = "52178"
UDPClients("UDP1").Start()
2 仍然是服务端
菜单的“管理项目”功能区,单击“网络监视器”,设置UDPClient的ReceivedMessage事件代码 (用于解析收到的消息) 消息格式为 %E|ID号%
Dim msg As String = e.Message
Dim ret As String = "!false"
If e.Message.StartsWith("%") AndAlso e.Message.EndsWith("%") '假定收到的信息头尾都是"%"
msg = msg.Trim("%") '去掉收到的消息中头尾的%
Dim prefix As String = msg.SubString(0,1)
Select Case prefix
Case "E" '查询 'E表示紧急 emergent
msg = msg.TrimStart("E","|") '把开头的E和|都删除
Dim dr As DataRow = DataTables("自助报障记录表").Find("ID = '" & msg & "'")
If dr IsNot Nothing Then
'调用语音播放ID号的内容
end if
'Case "U" '留着区分非紧急消息
case else
end select
' e.ReturnValue = ret '用于向发送端返回处理后的结果,此场景下不需要
end if
3.客户端
UDPClients("UDP1").IP = "127.0.0.1" '指向自己,好像不可以省
UDPClients("UDP1").Port = 52178 '使用这个端口
UDPClients("UDP1").Start()
UDPClients("UDP1").Send(IP,端口,"%E|" & currenttable.current("_identify") & "%")
UDPClients("UDP1").stop()
[此贴子已经被作者于2018/7/16 8:29:20编辑过]