有一个python 关于socketserver的问题
我目前所知断开连接的顺序是客户端做主动关闭连接,或者服务端某个条件被触发整个程序关闭而导致客户端连接关闭。假设有个IP,先连上我的服务端,而后连接越来越多,我服务端如何在...
我目前所知 断开连接的顺序是 客户端做主动关闭连接,或者服务端某个条件被触发整个程序关闭而导致客户端连接关闭。
假设有个IP,先连上我的服务端,而后连接越来越多,我服务端如何在连接达到一定数量后把它拉进黑名单并且即时断开这个IP的所有连接呢?
目前接触这个模块的方法比较少,也不想花时间查手册慢慢研究了,所以再这问下。 展开
假设有个IP,先连上我的服务端,而后连接越来越多,我服务端如何在连接达到一定数量后把它拉进黑名单并且即时断开这个IP的所有连接呢?
目前接触这个模块的方法比较少,也不想花时间查手册慢慢研究了,所以再这问下。 展开
1个回答
展开全部
比较简单的方法就是存储一个字典列表,每次一个链接把对象都保存到对象中,同时对象中存储对方IP。
每次client连接过来,先判断列表中IP是否超限,
如果不超限
允许连接
把对象和IP存储到列表中。
如果超限
不允许连接
遍历列表中所有IP,如果IP和连接IP相同,对象断开即可,同时从列表中删除
每次client连接过来,先判断列表中IP是否超限,
如果不超限
允许连接
把对象和IP存储到列表中。
如果超限
不允许连接
遍历列表中所有IP,如果IP和连接IP相同,对象断开即可,同时从列表中删除
追问
你的意思是[{'IP':'连接数'}] 每连一次 连接数+1 然后每次连进来都判断这个值是否大于我的阀值,如果大于 就断开?
那怎么做服务端主动断开连接呢?
追答
首先外围是个list = [],dict元素存储{‘ip’='192.168.0.1','client'=obj}
每次只要遍历这个list中获取ip=xxxx的总数,发现大于上限,再次遍历list,所有obj close 即可。
服务端断开连接应该是close吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询