以下是一个使用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

open62541多个client连接一个server将client分别维护起来server得到代码

原文地址: https://www.cveoy.top/t/topic/g7xr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录