和其他程序的通讯
有了UDPClient,就可以和其他程序通讯,包括微信、网页、手机APP等等。
其他程序不一定要位于本机,可以和网络上任何终端进行通讯。
如果其他程序位于本机,可以使用IP地址"127.0.0.1",否则请使用正确的IP地址。
例如你有个微信公众平台或网站,希望能和Foxtable对接起来,充分利用Foxtable在数据管理和统计分析方面的优势。
你可以在微信公众平台或网站所在的电脑运行一个Foxtable项目。
1、在项目的AfterOpenProject事件中设置代码:
UDPClients.Add("UDP1")
UDPClients("UDP1").IP
= "127.0.0.1"
UDPClients("UDP1").Port
= 52178
UDPClients("UDP1").Start()
2、在菜单的“管理项目”功能区,单击“网络监视器”,设置UDPClient的ReceivedMessage事件代码:
Dim
msg As
String = e.Message
Dim
ret As
String
If
e.Message.StartsWith("#")
AndAlso e.Message.EndsWith("#")
'假定收到的信息头尾都是"#",表示统计指定产品的销量
msg = msg.Trim("#")
msg = msg.Replace("#","','")
Dim b
As New
GroupTableBuilder("统计表1",DataTables("订单"))
b.Groups.AddDef("产品")
b.Totals.AddDef("数量")
b.Filter =
"产品
in ('"
& msg
& "')"
Dim dt
As DataTable
= b.Build(True)
For Each
dr As
DataRow In
dt.DataRows
If ret
> ""then
ret =
ret &
vbcrlf
End
If
ret = ret
& dr("产品")
& vbtab
& dr("数量")
Next
e.ReturnValue
= ret
End
If
Foxtable收到其他程序发来"#产品1#产品2#产品3#"这样格式的信息后,会自动统计出各产品的数量,并返回之。
你可以自己定义各种格式的字符串,用于完成不同的任务。
3、基本上任何编程工具,都可以使用UDP进行数据收发的。假定你使用的是vb.net开发其他程序,你可以使用下面的代码和本机的foxtable通讯:
Dim
udp As
New System.Net.Sockets.UdpClient(0)
Dim
ip As
New System.Net.IPEndPoint(System.Net.IPAddress.Parse("127.0.0.1"),
52178)
Dim
bytes() As
Byte = System.Text.Encoding.Unicode.GetBytes("#PD01#PD02#PD03#")
udp.Send(bytes,
bytes.Length,
ip)
Dim
sdt As
Date = Date.Now
While
Date.Now <
sdt.AddSeconds(5)
'等到5秒
If udp.Available
> 0 Then
Dim
remoteIp As New
System.Net.IPEndPoint(System.Net.IPAddress.Any,
0)
Dim rbytes()
As Byte =
udp.Receive(remoteIp)
Dim rev
As String =
System.Text.Encoding.Unicode.GetString(rbytes)
MessageBox.Show(rev)
End If
End
While
udp.Close
你也可以设计一个网页或APP,让用户通过网页或APP填报数据,收集之后通过UDP将数据发送给Foxtable,再将Foxtable返回的数据展示在网页和APP上。