/* * 模块名称:主机侧单测桩 - net_socket.h(lftpd_inet 模块专用) * 模块功能:给 FTP 的 inet 适配层一个可控的 socket 面。地址结构与 NET_AF_INET / * NET_SOCK_STREAM 一律取**真实** net_types.h(sin_port 的注释就写着 * "网络字节序",本模块的 htons/ntohs 契约靠它才钉得住);下面这些函数 * 原型与真实 net_socket.h 逐字一致(不一致就会在被测代码的调用点报错)。 * ⚠ 仅供主机侧单测使用,不参与 MCU 构建。真实 net_socket.h 带整条 netTask 消息队列 * 与芯片依赖,PC 上编不动。 * 创建日期:2026-10-23 */ #ifndef NET_SOCKET_H #define NET_SOCKET_H /* 真实 net_socket.h 会把 FreeRTOS.h / task.h 一起带给调用方, * lftpd_inet.c 正是靠那条链拿 TickType_t / vTaskDelay / pdMS_TO_TICKS, * 所以桩必须照做同样的 include(少一行就是 C2065 未声明)。 */ #include "FreeRTOS.h" #include "task.h" #include "net_types.h" int net_socket(int domain, int type); int net_bind(int sockfd, const struct net_sockaddr *addr, int addrlen); int net_listen(int sockfd); int net_close(int sockfd); int net_accept(int sockfd, struct net_sockaddr *addr, int *addrlen); int net_send(int sockfd, const void *buf, int len, int flags); int net_recv_to(int sockfd, void *buf, int len, uint32_t timeout_ms); int net_getsockname(int sockfd, struct net_sockaddr *addr, int *addrlen); uint16_t net_htons(uint16_t hostshort); uint16_t net_ntohs(uint16_t netshort); uint32_t net_get_generation(void); int net_listener_armed(int sockfd); #endif /* NET_SOCKET_H */