如題,我想在CH579M上同時(shí)運(yùn)行MQTT和FTP,可是它們兩個(gè)的服務(wù)器端口不一致,我該如何解決?目前,用串口通過條件可以在程序里分開運(yùn)行,但是切換需要“軟重啟”后重新調(diào)用WCHNET_SocketConnect才行。
您好,由于579M對(duì)于描述符的創(chuàng)建是看列表?SocketInf[WCHNET_MAX_SOCKET_NUM]中是否存在空閑,可以在創(chuàng)建完不同功能的連接后讀取SocketID,用于區(qū)分是用于MQTT還是FTP。
"TmpSocketInf.DesPort"我現(xiàn)在是MQTT和FTP目標(biāo)端口不一致,然后重復(fù)使用WCHNET_SocketCreat()和WCHNET_SocketConnect(),修改"TmpSocketInf.DesPort"后WCHNET_QueryGlobalInt()無響應(yīng)
您好,原則上不建議重復(fù)使用WCHNET_SocketCreat()和WCHNET_SocketConnect()這兩個(gè)函數(shù),可能由于這個(gè)愿意導(dǎo)致后面全局中斷無響應(yīng)。根據(jù)您描述的需求,應(yīng)該是如何判斷何時(shí)執(zhí)行MQTT,何時(shí)執(zhí)行FTP。關(guān)于這個(gè)問題,可以通過SOCK_INF這個(gè)結(jié)構(gòu)體中的DesPort來做判斷。具體實(shí)現(xiàn)方法如圖(只是實(shí)現(xiàn)該效果)
謝謝回復(fù),我知道了
也就是說WCHNET_SocketCreat()只能連接一個(gè)SOCK_INF這個(gè)結(jié)構(gòu)體中的DesPort,不能處理多個(gè)“目標(biāo)端口”是嗎?對(duì)于“目標(biāo)端口”不同的MQTT和FTP只能切換使用是嗎?
您好,根據(jù)您之前的描述,您使用的應(yīng)該是MQTT和FTP客戶端,都是基于TCP客戶端的,正常連接TCP服務(wù)器端目標(biāo)端口都是確定的,而且一個(gè)socket對(duì)應(yīng)一個(gè)TCP連接。不太理解您想通過一個(gè)socket訪問不同目標(biāo)端口服務(wù)器的目的。如果還有問題,可郵箱咨詢wtf@wch.cn或者電話咨詢025-52638370