在CH579M上同时运行MQTT和FTP

如题,我想在CH579M上同时运行MQTT和FTP,可是它们两个的服务器端口不一致,我该如何解决?目前,用串口通过条件可以在程序里分开运行,但是切换需要“软重启”后重新调用WCHNET_SocketConnect才行。

您好,由于579M对于描述符的创建是看列表 SocketInf[WCHNET_MAX_SOCKET_NUM]中是否存在空闲,可以在创建完不同功能的连接后读取SocketID,用于区分是用于MQTT还是FTP。


"TmpSocketInf.DesPort"我现在是MQTT和FTP目标端口不一致,然后重复使用WCHNET_SocketCreat()和WCHNET_SocketConnect(),修改"TmpSocketInf.DesPort"后WCHNET_QueryGlobalInt()无响应捕获.PNG


您好,原则上不建议重复使用WCHNET_SocketCreat()和WCHNET_SocketConnect()这两个函数,可能由于这个愿意导致后面全局中断无响应。根据您描述的需求,应该是如何判断何时执行MQTT,何时执行FTP。关于这个问题,可以通过SOCK_INF这个结构体中的DesPort来做判断。具体实现方法如图(只是实现该效果)

image.png

image.png


谢谢回复,我知道了


也就是说WCHNET_SocketCreat()只能连接一个SOCK_INF这个结构体中的DesPort,不能处理多个“目标端口是吗?对于目标端口不同的MQTT和FTP只能切换使用是吗?


您好,根据您之前的描述,您使用的应该是MQTT和FTP客户端,都是基于TCP客户端的,正常连接TCP服务器端目标端口都是确定的,而且一个socket对应一个TCP连接。不太理解您想通过一个socket访问不同目标端口服务器的目的。如果还有问题,可邮箱咨询wtf@wch.cn或者电话咨询025-52638370


只有登录才能回复,可以选择微信账号登录