open62541多个client连接一个server将client分别维护起来server得到代码
以下是一个使用open62541库实现多个client连接一个server的示例代码:
Server端代码:
#include "open62541.h"
int main(void) {
UA_ServerConfig *config = UA_ServerConfig_new_default();
UA_Server *server = UA_Server_new(config);
UA_StatusCode retval = UA_Server_run(server, &running);
UA_Server_delete(server);
UA_ServerConfig_delete(config);
return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE;
}
Client端代码:
#include "open62541.h"
int main(void) {
UA_Client *client1 = UA_Client_new();
UA_Client *client2 = UA_Client_new();
UA_Client *client3 = UA_Client_new();
UA_ClientConfig *config1 = UA_Client_getConfig(client1);
UA_ClientConfig *config2 = UA_Client_getConfig(client2);
UA_ClientConfig *config3 = UA_Client_getConfig(client3);
UA_ClientConfig_setDefault(config1);
UA_ClientConfig_setDefault(config2);
UA_ClientConfig_setDefault(config3);
UA_StatusCode retval1 = UA_Client_connect(client1, "opc.tcp://localhost:4840");
UA_StatusCode retval2 = UA_Client_connect(client2, "opc.tcp://localhost:4840");
UA_StatusCode retval3 = UA_Client_connect(client3, "opc.tcp://localhost:4840");
if(retval1 != UA_STATUSCODE_GOOD || retval2 != UA_STATUSCODE_GOOD || retval3 != UA_STATUSCODE_GOOD) {
UA_Client_delete(client1);
UA_Client_delete(client2);
UA_Client_delete(client3);
return EXIT_FAILURE;
}
UA_Client_delete(client1);
UA_Client_delete(client2);
UA_Client_delete(client3);
return EXIT_SUCCESS;
}
此示例中创建了三个client,分别连接到了同一台服务器。每个client都使用了默认的配置,并分别连接到了服务器的地址和端口号。如果连接成功,程序将返回EXIT_SUCCESS,否则返回EXIT_FAILURE
原文地址: https://www.cveoy.top/t/topic/g7xr 著作权归作者所有。请勿转载和采集!