diff --git a/app/drivers/data_port/socket_inet/socket_inet_server.c b/app/drivers/data_port/socket_inet/socket_inet_server.c index b4c9c61..863237a 100644 --- a/app/drivers/data_port/socket_inet/socket_inet_server.c +++ b/app/drivers/data_port/socket_inet/socket_inet_server.c @@ -200,6 +200,14 @@ static int _port_udp_write(sb_data_port_t *port, const void *data, uint32_t size { __port_data_t *port_data = port->data; int err = sendto(port_data->sock, data, size, 0, (struct sockaddr *)&port_data->udp.dest_addr, sizeof(port_data->udp.dest_addr)); + + // char ip_str[INET6_ADDRSTRLEN]; // 兼容 IPv4 和 IPv6 + // uint16_t test = 0; + // struct sockaddr_in *addr4 =(struct sockaddr_in *)&port_data->udp.dest_addr; + // inet_ntop(AF_INET, &addr4->sin_addr, ip_str, sizeof(ip_str)); + // test = ntohs(addr4->sin_port); + // SYS_LOG_WRN("IPv4: %s:%u\n", ip_str, test); + if (err < 0) { SYS_LOG_WRN("Error occurred during sending: errno %d", errno); @@ -1206,6 +1214,20 @@ void socket_inet_server_init(void) slist_init_list(&p_cm->udp_list); slist_init_list(&p_cm->tcp_list); } +/** + * @brief 设置 udp 的广播地址 以及端口 + * + * @param port 接口 + */ +void set_udp_broadcast_add(sb_data_port_t* port) +{ + __port_data_t *port_data = port->data; + + struct sockaddr_in *dest_addr_ipv4 = (struct sockaddr_in *)&port_data->udp.dest_addr; + dest_addr_ipv4->sin_family = AF_INET; // IPv4 协议族 + dest_addr_ipv4->sin_port = htons(port_data->listen_port); // 端口 + dest_addr_ipv4->sin_addr.s_addr = inet_addr("255.255.255.255"); // 例如广播地址 +} /** * @brief 创建一个 udp 本地服务监听端口,同时为已启动监听的端口绑定一个数据接口。 @@ -1229,6 +1251,7 @@ sb_data_port_t *socket_inet_server_bind_udp(uint16_t listen_port, const socket_s SYS_LOG_INF("bind udp: %p", port); } + set_udp_broadcast_add(port); return port; } diff --git a/app/drivers/sertrf/device.c b/app/drivers/sertrf/device.c index 7eb6a88..410efc1 100644 --- a/app/drivers/sertrf/device.c +++ b/app/drivers/sertrf/device.c @@ -183,7 +183,7 @@ uint8_t wifi_init(init_device_t *port) wifi_init_t init_struct = { .ap = { .ssid = "Sertorf", /**< SSID of soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. */ - .password = "12345678", /**< Password of soft-AP. */ + .password = "", /**< Password of soft-AP. */ .ip_v4 = {192, 168, 1, 1}, .gw_v4 = {192, 168, 1, 1}, .mask_v4 = {255, 255, 255, 0},