以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  UDP通信  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=141978)

--  作者:狐表编程总裁
--  发布时间:2019/10/15 16:36:00
--  UDP通信
UDP通信没有看懂那个网络监视器和其他程序对狐表进行通讯的程序,有没有详细的解释
--  作者:有点蓝
--  发布时间:2019/10/15 16:39:00
--  
具体什么地方不懂?


--  作者:狐表编程总裁
--  发布时间:2019/10/15 19:58:00
--  
receivemessage  的编写方式不太懂
--  作者:有点蓝
--  发布时间:2019/10/15 20:20:00
--  
就是接受和回复消息用的:http://www.foxtable.com/webhelp/topics/3005.htm

服务启动后,双方约定一些消息格式,比如"#产品1#产品2#产品3#"这样格式的信息,就代表需要查询这些产品的数量,那么根据约定的格式进行一些业务操作比如查询后返回对应需要的结果。



--  作者:狐表编程总裁
--  发布时间:2019/10/15 22:19:00
--  
我想用一个程序给狐表发udp的数据,然后通过狐表写入数据库以备后续的查询,
第一个问题:

1、在项目的AfterOpenProject事件中设置代码:

UDPClients.Add("UDP1")
UDPClients
("UDP1").IP = "127.0.0.1"
UDPClients
("UDP1").Port = 52178
UDPClients
("UDP1").Start()

这一段代码是表示打开udp通讯,那个ip和端口是都是指的对方程序的吗,还是端口是约定好的  就是端口是怎么写的  
第二个问题

2、在菜单的“管理项目”功能区,单击“网络监视器”,设置UDPClient的ReceivedMessage事件代码:

在第一个问题上面建立了连接后

网络监视器是用来一直查询是否有信息发送的吗?就是网络监视器查询到有消息发送后,才执行receivemessage的代码?
我把数据写入数据库是不是也在receivemessage这一个事件里写
第三个问题
3、对方程序要与己方对接是要指定什么



--  作者:狐表编程总裁
--  发布时间:2019/10/15 22:21:00
--  
网络监视器是一直查询有无消息发送,还是只在项目启动的时候查询
--  作者:有点蓝
--  发布时间:2019/10/15 22:49:00
--  
1,3、AfterOpenProject事件的代码就是启动一个监听服务,别人可以通过指定的IP和端口向这个服务发消息

2、UDPClients启动后,如果有其它客户端向这个UDPClients发送消息,那么网络监视器receivemessage事件就会触发,可以在这个事件里接收到其它客户端发送的消息,然后根据需要也可以返回其它消息给其它客户端


--  作者:狐表编程总裁
--  发布时间:2019/10/16 10:16:00
--  
ip是填对方的ip还是自己的ip呢
--  作者:有点蓝
--  发布时间:2019/10/16 10:21:00
--  
参考:http://www.foxtable.com/webhelp/topics/3000.htm
--  作者:狐表编程总裁
--  发布时间:2019/10/16 10:25:00
--  
如果我要做类似下面的接收,是否在receivemessage事件中的判断编程就不像帮助文件里面的了,要自己重新编写

一设备自动往客户端发送UDP数据包,格式如下:
      包头标志                                             消息类型   附加信息长度   附加信息
      4字节,固定为0x55,0x66,0x77,0x88     1字节      1字节              最多58字节
      说明:每个UDP包固定长度为64字节。总共分为四部分。
      前面4字节为包头,固定为0x55, 0x66, 0x77和0x88。通过包头,可以判断该UDP是否为设备发过来的信息包。
      第5个字节为信息包类型。定义如下:1表示来电号码; 2表示挂机信息; 3表示摘机信息; 4表示振铃消失(振了一段时间后,没接,后来振铃消失了); 5表示振铃; 6来电号码校验; 7未接线(即电话线断了)
      第六个字节为附加信息长度
      第七个字节为附加信息。当类型为来电号码或来电号码校验时,该附加信息表示来电号码,以’\\0’结束。
      注意:来电之后,设备在发送来电号码后,为了防止因网络原因导致终端没收到来电号码,设备将每隔0.5秒再通过类型为6的来电号码校验信息,发送来电号码,重复3次。如果在一次来电过程中,终端已经通过类型为1的来电号码信息,获取到来电号码后,就可以不忽略来电号码校验包;否则,可以通过来电号码校验包,弥补之前没收到的来电号码。