Other Parts Discussed in Thread: CC3235SF
器件型号: CC3235MODASF
Thread 中讨论的其他器件: CC3235SF
-
您好 TI、
根据 CC3235SF 文档、SimpleLink Wi-Fi 网络处理器支持高达 16 BSD 套接字 。
在我的应用中、器件运行一个使用 BSD 套接字实现的 TCP 服务器。
除了侦听套接字和接受的客户端套接字之外、不会打开其他用户创建的套接字。
应用程序不会显式创建或管理任何其他网络服务。TCP 服务器流程如下:
-
sl_Socket() -
sl_SetSockOpt()→将套接字设置为非阻塞 -
sl_Bind() -
sl_Listen() -
sl_Select()来监视事件 -
当侦听套接字是可读的时、调用
sl_Accept()以接受新的客户端连接 -
每个接受的客户端都使用自己的套接字
sl_Socket()除了侦听套接字和接受的客户端套接字之外、不会进行其他调用。
观察到的行为
-
服务器可以成功接受 仅 14 个 TCP 客户端连接
-
达到此限值后:
-
sl_Accept()退货< 0(例如 ENOBUFS / EAGAIN) -
sl_Select()继续指示侦听套接字是可读的
-
-
侦听套接字本身保持有效和开放状态
-
何种影响 可重现且一致
预期行为
根据文档、我预计:
-
1 个侦听套接字
-
多达 15 个套接字可用于接受的 TCP 客户端连接
然而、实际上、接受客户的最大数目是 14 个。
问题
-
为什么是实际限制 14 个 TCP 客户端连接 、而不是 15(或 16,包括监听套接字)?
-
一些 BSD 套接字 由 NWP 在内部保留 (即使只有 TCP 服务器正在运行)?
-
是否有任何官方文档描述有多少套接字可供用户分配、而不是在 CC3235SF 上内部保留?
请作出任何澄清。
谢谢你。
-