這篇比較簡單。
一 問題
我們在使用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
注意,端口號要根據實際情況來選擇,避免和已使用的端口號衝突。