和其他程序的通讯

有了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上。


本页地址:http://www.foxtable.com/webhelp/topics/3004.htm