LwIP 当前版本有部分套接字属性的设置/获取是暂时没有支持的,操作这些属性会返回 errno = ENOPROTOOPT 的错误码。
解决办法
以 SDK 中 lwip-2.0.3 举例。可以通过打开文件 include/net /lwip-2.0.3 /lwip/sockets.h 查看当前版本 LwIP 支持哪些真实属性的设置/获取。
#define SO_DEBUG 0x0001 /* 未实现:开启调试信息记录 */
#define SO_ACCEPTCONN 0x0002 /* 套接字已经监听() */
#define SO_DONTROUTE 0x0010 /* 未实现:只使用接口地址 */
#define SO_USELOOPBACK 0x0040 /* 未实现:尽可能绕过硬件 */
#define SO_LINGER 0x0080 /* 如果数据存在,则在关闭时逗留 */
#define SO_DONTLINGER ((int)(~SO_LINGER))
#define SO_OOBINLINE 0x0100 /* 未实现:将接收到的 OOB 数据保留在行中 */
#define SO_REUSEPORT 0x0200 /* 未实现:允许本地地址和端口重用 */
#define SO_SNDBUF 0x1001 /* 未实现:发送缓冲区大小 */
#define SO_RCVBUF 0x1002 /* 接收缓冲区大小 */
#define SO_SNDLOWAT 0x1003 /* 未实现:发送低水位标记 */
#define SO_RCVLOWAT 0x1004 /* 未实现:接收低水位标记 */
#define SO_SNDTIMEO 0x1005 /* 发送超时 */
#define SO_RCVTIMEO 0x1006 /* 接收超时 */
#define SO_ERROR 0x1007 /* 获取错误状态并清除 */
#define SO_TYPE 0x1008 /* 获取套接字类型 */
#define SO_CONTIMEO 0x1009 /* 未实现:连接超时 */
#define SO_NO_CHECK 0x100a /* 不创建 UDP 校验和 */
如上所示,如果该属性后的声音有未实现,则未支持。
LwIP 当前版本有部分套接字属性的设置/获取是暂时没有支持的,操作这些属性会返回 errno = ENOPROTOOPT 的错误码。
解决办法
以 SDK 中 lwip-2.0.3 举例。可以通过打开文件 include/net /lwip-2.0.3 /lwip/sockets.h 查看当前版本 LwIP 支持哪些真实属性的设置/获取。
#define SO_DEBUG 0x0001 /* 未实现:开启调试信息记录 */
#define SO_ACCEPTCONN 0x0002 /* 套接字已经监听() */
#define SO_DONTROUTE 0x0010 /* 未实现:只使用接口地址 */
#define SO_USELOOPBACK 0x0040 /* 未实现:尽可能绕过硬件 */
#define SO_LINGER 0x0080 /* 如果数据存在,则在关闭时逗留 */
#define SO_DONTLINGER ((int)(~SO_LINGER))
#define SO_OOBINLINE 0x0100 /* 未实现:将接收到的 OOB 数据保留在行中 */
#define SO_REUSEPORT 0x0200 /* 未实现:允许本地地址和端口重用 */
#define SO_SNDBUF 0x1001 /* 未实现:发送缓冲区大小 */
#define SO_RCVBUF 0x1002 /* 接收缓冲区大小 */
#define SO_SNDLOWAT 0x1003 /* 未实现:发送低水位标记 */
#define SO_RCVLOWAT 0x1004 /* 未实现:接收低水位标记 */
#define SO_SNDTIMEO 0x1005 /* 发送超时 */
#define SO_RCVTIMEO 0x1006 /* 接收超时 */
#define SO_ERROR 0x1007 /* 获取错误状态并清除 */
#define SO_TYPE 0x1008 /* 获取套接字类型 */
#define SO_CONTIMEO 0x1009 /* 未实现:连接超时 */
#define SO_NO_CHECK 0x100a /* 不创建 UDP 校验和 */
如上所示,如果该属性后的声音有未实现,则未支持。
举报