如何对LWIP的tcp客户端连接数做限制呢
我这边使用的是stm32H7+lwip+freertos,单片机开启了一个502端口的服务器,现在想将能连接的客户端数量限制到6个,应该修改哪里呢?或者说TCP 服务端能否主动发起断开客户端呢 TCP是一对一的,这个本质要了解下,你开几个服务器仅可以连接几个客户端。
如果是BSD Socket也是同理,他是封装了个API,同样也是1对1,是通过设置监听个数实现的,不要被函数仅创建了一次所迷惑。 eric2013 发表于 2022-8-2 18:05
TCP是一对一的,这个本质要了解下,你开几个服务器仅可以连接几个客户端。
如果是BSD Socket也是同理, ...
不是,我服务器开启后,可以同时用多个客户端连接他,应该是1对多吧,关键就在于不知道该怎么让服务器限制超出数量的客户端不要连接 myNameIsLin 发表于 2022-8-2 18:46
不是,我服务器开启后,可以同时用多个客户端连接他,应该是1对多吧,关键就在于不知道该怎么让服务器限 ...
理解有偏差,建议先熟悉下基础。
BSD Socket,Win Socket等,创建服务器后,不是有个设置监听个数的API么,他就是限制连接的客户端用的。设置监听多少个,就是可以连接多少客户端。
ps:不要被开启服务器后,仅创建了一次所迷惑,他是封装了个API,同样也是1对1,是通过设置监听个数决定支持的客户端连接个数。你来一个客户端,根据设置的最大监听个数,会创建一个TCP服务器去接收响应。 eric2013 发表于 2022-8-3 09:45
理解有偏差,建议先熟悉下基础。
BSD Socket,Win Socket等,创建服务器后,不是有个设置监听个数的AP ...
我用的是netconn的api,你这样一说我翻了下代码
#define netconn_listen(conn) netconn_listen_with_backlog(conn, TCP_DEFAULT_LISTEN_BACKLOG)
TCP_DEFAULT_LISTEN_BACKLOG这个宏默认是255 也就是说这个是可以限制连接数咯? 我等下试试
myNameIsLin 发表于 2022-8-4 14:46
我用的是netconn的api,你这样一说我翻了下代码
#define netconn_listen(conn) net ...
试了下好像没有什么变化晚点再试试 eric2013 发表于 2022-8-2 18:05
TCP是一对一的,这个本质要了解下,你开几个服务器仅可以连接几个客户端。
如果是BSD Socket也是同理, ...
你好我想问下,lwip的netconn和socket的api可以混用吗? myNameIsLin 发表于 2022-8-16 17:35
你好我想问下,lwip的netconn和socket的api可以混用吗?
没问题,两个任务分别刷相应的API玩。
像TCPnet,ThreadX NetXDUO还能各种API随意刷,lwip如果不能,那就有点坑了。 解决了把IP地址重用打开就行,客户端数量满了的时候把监听关闭,客户端数量不足的时候重新打开监听就行
页:
[1]