• [技术干货] 海酆防溺水检测系统
    各路大神如何把物联网接入高危行业?
  • [技术干货] Session、Cookie与Token之间的异同
    🍁 作者:知识浅谈,CSDN签约讲师&博客专家,华为云云享专家,阿里云专家博主,InfoQ签约作者📌 擅长领域:全栈工程师、爬虫、ACM算法,大数据,深度学习在Web开发中,Session、Cookie与Token是常用的技术,它们各自承担着不同的职责,用于管理用户的认证和状态。本文将详细介绍这三种技术的基本概念、应用场景、优缺点以及它们之间的区别。🎈Cookie基本概念 Cookie是存储在用户端的小型文本文件,主要用于存储用户身份信息和会话跟踪。当用户首次访问网站时,服务器可以在响应信息(response)中增加Set-Cookie响应头,将信息以Cookie为载体发送给浏览器。浏览器接收到Cookie信息后,会将其保存在浏览器的缓冲区或硬盘中。当浏览器再次访问服务器时,会自动将Cookie放在请求消息中,服务器通过请求中的Cookie来识别用户。应用场景 Cookie通常用于保存用户的登录信息、购物车数据、偏好设置等。例如,在用户登录后,服务器会返回一个包含用户身份的Cookie,客户端会保存这个Cookie。之后,每次客户端发送请求时,Cookie会自动附加到请求中,以识别用户身份。优缺点优点: 简单易用:Cookie是一种标准的HTTP技术,几乎所有浏览器都支持。 会话管理:适合用于简单的状态管理,如用户偏好、语言选择等。 缺点: 安全性较差:Cookie是明文传输的,容易被窃取或篡改。 跨域限制:Cookie只能被设置和访问同一域下的资源,跨域访问受到严格的限制。🎈Session基本概念 Session是存储在服务器端的用户会话信息。每个用户的请求都会关联一个唯一的Session ID,这个ID通常通过Cookie保存在客户端。当用户首次访问服务器时,服务器会创建一个Session,并为其生成一个唯一的Session ID,然后将这个ID通过Cookie发送给客户端。之后,每次客户端请求时,都会带上这个Session ID,服务器根据ID查找对应的Session信息,从而识别用户。应用场景 Session适用于需要在服务器端管理用户状态的场景,特别是需要保持用户登录状态、购物车等需要长期管理的应用。Session信息存储在服务器端,相对更安全,因为敏感数据不会直接暴露给客户端。优缺点 优点: 安全性较高:敏感数据存储在服务器端,避免了直接暴露给客户端。 持久性:Session可以持续存在,直到用户关闭浏览器或Session超时。 缺点: 依赖Cookie:Session的唯一标识符Session ID通常通过Cookie发送给客户端,如果客户端禁用了Cookie,Session将无法使用。 占用服务器资源:Session信息存储在服务器上,会占用服务器的存储资源。🎈Token基本概念 Token是存储在客户端的一种身份验证和授权机制,通常以加密的方式存储在客户端的localStorage或sessionStorage中。Token可以包含用户信息、权限等,用于验证用户的身份和权限。应用场景 Token适用于无状态认证,特别是分布式系统、移动应用、单点登录(SSO)等需要多服务器共享认证信息的场景。用户登录成功后,服务器会生成一个Token返回给客户端,客户端保存这个Token并在后续请求中发送给服务器进行身份验证。优缺点 优点: 安全性高:Token通常使用加密算法生成,具有较高的安全性。 跨域支持:Token可以轻松实现跨域,因为Token是存储在客户端的localStorage或作为请求头的一部分发送到服务器的。 无状态:服务器不需要保存Token的状态,有助于构建更加灵活的应用程序架构。 缺点: 存储空间限制:Token通常较大,可能会占用较多的客户端存储空间。 有效期管理:Token的有效期需要合理设置,以避免过期或长期有效带来的安全风险。🍚总结Cookie、Session和Token都是Web开发中用于管理用户认证和状态的重要技术。它们各有优缺点,适用于不同的场景。Cookie适合轻量级的状态管理,Session适合需要在服务器端管理用户状态的场景,而Token则适合无状态认证和跨域认证。在实际开发中,应根据具体需求选择合适的技术来实现用户认证和状态管理。 大功告成,撒花致谢🎆🎇🌟,关注我不迷路,带你起飞带你富。 Writted By 知识浅谈
  • [问题求助] 华为算法精英实战营第十期-用户位置与站址同步估计问题
    华为算法精英实战营第十期-用户位置与站址同步估计问题,最终的用户也是200个吗
  • [问题求助] 华为算法精英实战营第十期-用户位置与站址同步估计问题
    房间的大小是20*20,中心为原点,那么x和y的范围应该是(-10,10)。约束条件中的UE是符合要求的,但给的input中前两个BS的坐标超出了这个范围,约束条件中对BS的约束也只是象限约束。所以UE是在房间中,BS可以不在房间中吗
  • [技术交流] rk3568使用napi进行uart串口开发,遇到问题。
    rk3568使用uart进行串口通信代码实现,napi代码如下#include "napi/native_api.h"#include "platform_if.h"#include "uart_if.h"#include "hdf_base.h"#include <cstdint>#include "hdf_types.h"#include <cstdlib>#include <functional>#include <hilog/log.h>#include <js_native_api_types.h>static napi_value Add(napi_env env, napi_callback_info info){ size_t argc = 2; napi_value args[2] = {nullptr}; napi_get_cb_info(env, info, &argc, args , nullptr, nullptr); napi_valuetype valuetype0; napi_typeof(env, args[0], &valuetype0); napi_valuetype valuetype1; napi_typeof(env, args[1], &valuetype1); double value0; napi_get_value_double(env, args[0], &value0); double value1; napi_get_value_double(env, args[1], &value1); napi_value sum; napi_create_double(env, value0 + value1, &sum); return sum;}unsigned long open(char port[50]) { return open(port); }static napi_value UartOpen(napi_env env, napi_callback_info info){ size_t requireArgc = 1; size_t argc = 1; napi_value args[1] = {nullptr}; napi_get_cb_info(env, info,&argc,args ,nullptr, nullptr); napi_valuetype valuetype0; napi_typeof(env,args[0], &valuetype0); size_t size; char port[50] ; napi_get_value_string_utf8(env, args[0], port, 50, &size); size_t ret; ret = open(port); if (ret == NULL) { HDF_FAILURE; } }unsigned long setAttribute(char port, char attribute) { setAttribute(port, attribute); }static napi_value UartSetAttribute(napi_env env , napi_callback_info info){ size_t requireArgc = 2; size_t argc = 2; napi_value args[2] = {nullptr}; napi_get_cb_info(env, info,&argc,args ,nullptr, nullptr); napi_valuetype valuetype0; napi_typeof(env,args[0], &valuetype0); napi_valuetype valuetype1; napi_typeof(env,args[0], &valuetype1); char port{50}; size_t size; size_t ret; struct UartAttribute attribute; attribute.dataBits = UART_ATTR_DATABIT_8; attribute.parity = UART_ATTR_PARITY_NONE; attribute.stopBits = UART_ATTR_STOPBIT_1; // UART传输数据停止位为1位 attribute.rts = UART_ATTR_RTS_DIS; // UART禁用RTS attribute.cts = UART_ATTR_CTS_DIS; // UART禁用CTS attribute.fifoRxEn = UART_ATTR_RX_FIFO_EN; // UART使能RX FIFO attribute.fifoTxEn = UART_ATTR_TX_FIFO_EN; // UART使能TX FIFO ret = UartSetAttribute(&port, &attribute); if (ret != HDF_SUCCESS) { LOG_ERROR; } LOG_INFO;} struct napi_value__ * write(int port, unsigned long data) {return write(port, data);}static napi_value UartWrite(napi_env env , napi_callback_info info){ size_t requireArgc = 2; size_t argc = 2; napi_value args[2] = {nullptr}; napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); napi_valuetype valuetype0; napi_typeof(env, args[0], &valuetype0); napi_valuetype valuetype1; napi_typeof(env, args[1], &valuetype1); int32_t port; DevHandle handle = UartOpen(port); napi_get_value_int32(env, args[0], &port); napi_get_value_int32(env, args[0], &port); char value0[50]; size_t data; napi_get_value_string_utf8(env, args[1], value0, 50, &data); int32_t size; size = sizeof(data); napi_value ret;ret = write(port,data); napi_create_int32(env, data,&ret ); return ret; if (ret == NULL) { LOG_ERROR; }return ret;} struct napi_value__ * read(int port, char data[512]) { return read(port, data); }static napi_value UartRead(napi_env env , napi_callback_info info){ size_t requireArgc = 2; size_t argc = 2; napi_value args[2] = {nullptr}; napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); napi_valuetype valuetype0; napi_typeof(env, args[0], &valuetype0); napi_valuetype valuetype1; napi_typeof(env, args[1], &valuetype1); int32_t port; napi_get_value_int32(env, args[0], &port); char value0[50]; size_t data; napi_get_value_string_utf8(env, args[1], value0, 50, &data); napi_value ret; ret = read(port,value0); napi_create_int32(env, data,&ret ); return ret; if (ret == NULL) { LOG_ERROR; }return ret;}struct napi_value__ * set(char port[50], unsigned int BaudRate) { return set(port, BaudRate);}static napi_value UartSetBaud(napi_env env, napi_callback_info info){ size_t requireArgc = 2; size_t argc = 2; napi_value args[2] = {nullptr}; napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); napi_valuetype valuetype0; napi_typeof(env, args[0], &valuetype0); napi_valuetype valuetype1; napi_typeof(env, args[1], &valuetype1); char port[50]; size_t size1; napi_get_value_string_utf8(env, args[0], port, 50, &size1); int32_t BaudRate ; BaudRate= 150000; napi_value result; napi_create_int32(env, 1500000,&result); napi_value ret; ret = set(port,15000000); if (ret == NULL ) { HDF_FAILURE; } return ret; } struct napi_value__ * get(char port[50], int BaudRate) { return get(port, BaudRate);}static napi_value UartGetBaud(napi_env env, napi_callback_info info){ size_t requireArgc = 2; size_t argc = 2; napi_value args[2] = {nullptr}; napi_get_cb_info(env, info, &argc, args, nullptr, nullptr); napi_valuetype valuetype0; napi_typeof(env, args[0], &valuetype0); napi_valuetype valuetype1; napi_typeof(env, args[1], &valuetype1); char port[50]; size_t size1; napi_get_value_string_utf8(env, args[0], port, 50, &size1); int32_t BaudRate; napi_value ret; napi_create_int32(env, BaudRate, &ret); napi_create_int32(env, size1, &ret); ret = get(port, BaudRate); if (ret == nullptr) { HDF_FAILURE;; } return ret; }struct napi_value__ * close(int port) { return close(port);}static napi_value UartClose(napi_env env, napi_callback_info info){ size_t requireArgc = 1; size_t argc = 1; napi_value args[1] = {nullptr}; napi_get_cb_info(env, info,&argc,args ,nullptr, nullptr); napi_valuetype valuetype0; napi_typeof(env,args[0], &valuetype0); int port; napi_get_value_int32(env, args[0], &port); close(port); napi_value ret; napi_create_int32(env, port, &ret); if (ret == NULL) { HDF_FAILURE; }return ret;}EXTERN_C_STARTstatic int32_t UartTest(void ) { int32_t ret; uint32_t port; uint32_t baud = 15000000; DevHandle handle = NULL; uint8_t wbuff[] = {}; uint8_t rbuff[] = {}; struct UartAttribute attribute; attribute.dataBits = UART_ATTR_DATABIT_8; // UART传输数据位宽,一次传输8个bit attribute.parity = UART_ATTR_PARITY_NONE; // UART传输数据无校检 attribute.stopBits = UART_ATTR_STOPBIT_1; // UART传输数据停止位为1位 attribute.rts = UART_ATTR_RTS_DIS; // UART禁用RTS attribute.cts = UART_ATTR_CTS_DIS; // UART禁用CTS attribute.fifoRxEn = UART_ATTR_RX_FIFO_EN; // UART使能RX FIFO attribute.fifoTxEn = UART_ATTR_TX_FIFO_EN;// UART使能TX FIFO ret = UartSetAttribute(handle, &attribute); handle = UartOpen(port); if (ret != HDF_SUCCESS) { return HDF_FAILURE; } ret = UartSetBaud(handle, 1500000); if (ret != HDF_SUCCESS) { return HDF_FAILURE; } ret = UartGetBaud(handle, &baud); if (ret != HDF_SUCCESS) { return HDF_FAILURE; } ret = UartWrite(handle, wbuff, sizeof(wbuff)); if (ret != HDF_SUCCESS) { return HDF_FAILURE; } ret = UartRead(handle, rbuff, sizeof(rbuff)); if (ret != HDF_SUCCESS) { return HDF_FAILURE; } UartClose(handle); if (ret != HDF_SUCCESS) { return HDF_FAILURE; } return HDF_SUCCESS;}static napi_value Init(napi_env env, napi_value exports){ napi_property_descriptor desc[] = { { "add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr }, { "UartOpen", nullptr, UartOpen, nullptr, nullptr, nullptr, napi_default, nullptr }, { "UartClose", nullptr, UartClose, nullptr, nullptr, nullptr, napi_default, nullptr }, { "UartWrite", nullptr, UartWrite, nullptr, nullptr, nullptr, napi_default, nullptr }, { "UartRead", nullptr, UartRead, nullptr, nullptr, nullptr, napi_default, nullptr }, { "UartSetBaud", nullptr, UartSetBaud, nullptr, nullptr, nullptr, napi_default, nullptr }, { "UartGetBaud", nullptr, UartGetBaud, nullptr, nullptr, nullptr, napi_default, nullptr } }; napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); return exports;}EXTERN_C_ENDstatic napi_module demoModule = { .nm_version = 1, .nm_flags = 0, .nm_filename = nullptr, .nm_register_func = Init, .nm_modname = "entry", .nm_priv = ((void*)0), .reserved = { 0 },};extern "C" __attribute__((constructor)) void RegisterEntryModule(void){ napi_module_register(&demoModule);}cmakelist.txt内容如下:# the minimum version of CMake.cmake_minimum_required(VERSION 3.4.1)project(Uart)if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a")endif()if (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/path/to/openharmony/libs")endif()set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})SET (CMAKE_BUILD_TYPE Debug CACHE INTERNAL “” FORCE)if(DEFINED PACKAGE_FIND_FILE) include(${PACKAGE_FIND_FILE})endif()include_directories(${NATIVERENDER_ROOT_PATH} ${NATIVERENDER_ROOT_PATH}/include)add_library(entry SHARED napi_init.cpp) target_link_libraries(serialhelper PUBLIC libace_napi.z.so libc++.a libhilog_ndk.z.so libuv.so libserialport_service_api.z.so)运行工程报错: > hvigor ERROR: Failed :entry:default@BuildNativeWithCmake...  > hvigor ERROR: Exceptions happened while executing: Not searching for unused variables given on the command line. -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:3 (project):   The CMAKE_CXX_COMPILER:      C:/Program Files/Huawei/DevEco Studio/license/DevEco Studio/sdk/HarmonyOS-NEXT-DB1/openharmony/native/llvm/bin/clang++.exe    is not a full path to an existing compiler tool.    Tell CMake where to find the compiler by setting either the environment   variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path   to the compiler, or to the compiler name if it is in the PATH.  -- Configuring incomplete, errors occurred! See also "C:/Users/Administrator/DevEcoStudioProjects/Uart/entry/.cxx/default/default/arm64-v8a/CMakeFiles/CMakeOutput.log". See also "C:/Users/Administrator/DevEcoStudioProjects/Uart/entry/.cxx/default/default/arm64-v8a/CMakeFiles/CMakeError.log".  > hvigor ERROR: BUILD FAILED in 2 s 908 ms  hilog中报错如下:08-05 17:28:11.725   5162-5162    C02f00/teecd                   pid-5162              E     open tee client dev failed, fd is <private> 08-05 17:28:11.726   5162-5162    C02f00/teecd                   pid-5162              E     fs agent init failed 08-05 17:28:11.726   5162-5162    C02f00/teecd                   pid-5162              E     open tee client dev failed, fd is <private> 08-05 17:28:11.726   5162-5162    C02f00/teecd                   pid-5162              E     misc agent init failed 08-05 17:28:11.750   5163-5163    C02f00/teecd                   pid-5163              E     open tee client dev failed, fd is <private> 08-05 17:28:11.750   5163-5163    C02f00/teecd                   pid-5163              E     fs agent init failed 08-05 17:28:11.750   5163-5163    C02f00/teecd                   pid-5163              E     open tee client dev failed, fd is <private> 08-05 17:28:11.750   5163-5163    C02f00/teecd                   pid-5163              E     misc agent init failed 08-05 17:28:11.768   5164-5164    C02f00/teecd                   pid-5164              E     open tee client dev failed, fd is <private> 08-05 17:28:11.768   5164-5164    C02f00/teecd                   pid-5164              E     fs agent init failed 08-05 17:28:11.769   5164-5164    C02f00/teecd                   pid-5164              E     open tee client dev failed, fd is <private> 08-05 17:28:11.769   5164-5164    C02f00/teecd                   pid-5164              E     misc agent init failed 08-05 17:28:11.784   5165-5165    C02f00/teecd                   pid-5165              E     open tee client dev failed, fd is <private> 08-05 17:28:11.784   5165-5165    C02f00/teecd                   pid-5165              E     fs agent init failed 08-05 17:28:11.784   5165-5165    C02f00/teecd                   pid-5165              E     open tee client dev failed, fd is <private> 08-05 17:28:11.784   5165-5165    C02f00/teecd                   pid-5165              E     misc agent init failed 08-05 17:28:14.679   547-866      C01719/ffrt                    foundation            E     20299:FFRTQosApplyForOther:242 qos apply failed for task 5170 08-05 17:28:15.883   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:15.884   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:16.279   5179-5179    C01810/SAFWK                   pid-5179              E     CheckAndGetProfilePath file path does not exist! 08-05 17:28:16.280   5179-5179    C01810/SAFWK                   pid-5179              E     DoStartSAProcess DoStartSAProcess invalid path 08-05 17:28:16.330   5180-5180    C01810/SAFWK                   pid-5180              E     CheckAndGetProfilePath file path does not exist! 08-05 17:28:16.330   5180-5180    C01810/SAFWK                   pid-5180              E     DoStartSAProcess DoStartSAProcess invalid path 08-05 17:28:16.378   5181-5181    C01810/SAFWK                   pid-5181              E     CheckAndGetProfilePath file path does not exist! 08-05 17:28:16.378   5181-5181    C01810/SAFWK                   pid-5181              E     DoStartSAProcess DoStartSAProcess invalid path 08-05 17:28:16.426   5182-5182    C01810/SAFWK                   pid-5182              E     CheckAndGetProfilePath file path does not exist! 08-05 17:28:16.426   5182-5182    C01810/SAFWK                   pid-5182              E     DoStartSAProcess DoStartSAProcess invalid path 08-05 17:28:18.399   263-298      C01719/ffrt                    samgr                 E     8683:FFRTQosApplyForOther:242 qos apply failed for task 5183 08-05 17:28:18.411   469-469      C01560/WifiHalWpaCommon        wifi_hal_service      E     WpaCliCmd, ctrl/ctrl->pSend is NULL! 08-05 17:28:18.412   469-469      C01560/WifiHalWpaCommon        wifi_hal_service      E     WpaCliCmd, ctrl/ctrl->pSend is NULL! 08-05 17:28:18.412   469-469      C01560/WifiHalStaInterface     wifi_hal_service      E     StartScan failed! ret=-1 08-05 17:28:18.413   1002-1285    C01562/ScanStateMachine        wifi_manager_se       E     WifiStaHalInterface::GetInstance().scan failed. 08-05 17:28:18.413   1002-1285    C01560/WifiScanManager         wifi_manager_se       E     DealScanFinished, state: 0! 08-05 17:28:18.421   547-5170     C01719/ffrt                    foundation            E     20338:FFRTQosApplyForOther:242 qos apply failed for task 5184 08-05 17:28:18.423   547-5170     C01719/ffrt                    foundation            E     20353:FFRTQosApplyForOther:242 qos apply failed for task 5185 08-05 17:28:18.428   547-5170     C01719/ffrt                    foundation            E     20379:FFRTQosApplyForOther:242 qos apply failed for task 5186 08-05 17:28:18.430   547-5170     C01719/ffrt                    foundation            E     20396:FFRTQosApplyForOther:242 qos apply failed for task 5187 08-05 17:28:18.747   264-944      C01719/ffrt                    hiview                E     3023:FFRTQosApplyForOther:242 qos apply failed for task 5188 08-05 17:28:21.044   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:21.045   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:22.536   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:22.537   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:22.633   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:22.634   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:22.641   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:22.642   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:26.180   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:26.180   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:27.812   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:27.812   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:28.838   264-944      C01719/ffrt                    hiview                E     3041:FFRTQosApplyForOther:242 qos apply failed for task 5223 08-05 17:28:31.342   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:31.343   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:32.974   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:32.975   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:36.502   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:36.503   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106! 08-05 17:28:38.165   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.control.shell, errNum is:106! 08-05 17:28:38.166   632-720      C02c02/PARAM                   hdcd                  E     [param_manager.c:736]SystemReadParam failed! name is:persist.hdc.root, errNum is:106!
  • [其他问题] .so动态库出现undefined symbol
    使用了一个第三方的动态库libgmssl.so来编写生成了一个新的动态库tlcp.so,但是使用时出现undefined symbol后面使用ldd -r tlcp.so查看,显示如下内容undefined symbol: tls_send    (./tlcp.so) undefined symbol: tls_ctx_cleanup    (./tlcp.so) undefined symbol: tls_socket_accept    (./tlcp.so) undefined symbol: tls_do_handshake    (./tlcp.so) undefined symbol: tls_ctx_set_certificate_and_key    (./tlcp.so) undefined symbol: tls_socket_connect    (./tlcp.so) 这些函数的实现在libgmssl.so内已经实现,且使用nm libgmssl.so显示
  • [问题求助] APP Web页面怎么通过nginx访问后台呢
    当我访问比如https://192.168.1.120/SDCAPI/V1.0/demoapp/时,可以获得成功的结果。当我访问https://localhost/SDCAPI/V1.0/demoapp/或者https://127.0.0.1/SDCAPI/V1.0/demoapp/时,返回错误。而我在实际的开发中,网页端无法获得类似于192.168.1.120的ip地址。请问是哪里出了问题呢