學習open62541 --- [16] 修改默認端口

這篇比較簡單。


一 問題

我們在使用open62541時,server啓動時默認端口都是4840,下面是典型的server啓動代碼

int main(void) 
{
    UA_Server *server = UA_Server_new();
    UA_ServerConfig_setDefault(UA_Server_getConfig(server));

    UA_StatusCode retval = UA_Server_run(server, &running);
    
    UA_Server_delete(server);
    
    return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE;
}

啓動後會server會監聽4840端口,
在這裏插入圖片描述
那麼如何修改默認端口號呢?


二 修改

打開函數UA_ServerConfig_setDefault()就一目瞭然了,

/* Creates a server config on the default port 4840 with no server
 * certificate. */
static UA_INLINE UA_StatusCode
UA_ServerConfig_setDefault(UA_ServerConfig *config) {
    return UA_ServerConfig_setMinimal(config, 4840, NULL);
}

可以看到UA_ServerConfig_setDefault()裏調用了UA_ServerConfig_setMinimal(),其第2個參數就是4840,所以只要修改一下這個參數就可以了。

server啓動代碼就要修改一下,改爲使用UA_ServerConfig_setMinimal(),如下

int main(void) 
{
    UA_Server *server = UA_Server_new();
    UA_ServerConfig_setMinimal(UA_Server_getConfig(server), 5566, NULL);

    UA_StatusCode retval = UA_Server_run(server, &running);
    
    UA_Server_delete(server);
    
    return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE;
}

啓動時打印如下,監聽端口號變成5566
在這裏插入圖片描述
注意,端口號要根據實際情況來選擇,避免和已使用的端口號衝突。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章