如何拒绝socket 访问?

ets2008 2008-04-21 01:53:43
服务器端,如果接收客户端的并发处理太多了,select()函数返回后,在accept() 之前,如何拒绝客户端的访问?谢谢
...全文
229 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
我也想知道,正在找這方面的資料~~~~~
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
关注 接分
过客猫2022 2008-04-23
  • 打赏
  • 举报
回复
你不Accept,你无话知道它是否是你要拒绝的IP,你执行Accept之后,就可以取得客户端的IP和端口,然后,你再根据实际要求,来拒绝即可,一般Accept后,我会放到其它线程处理与客户端的连接,侦听线程会继续处理Accept.我测试过,同时并发几万个链接处理,都没有什么问题.你不会是单线程服务器吧,
dayongxie 2008-04-23
  • 打赏
  • 举报
回复
做了个试验发现:在非阻塞模式下,在accept之前,select返回可读后,tcp握手就已经完成了。
感觉应该在select之前进行处理,至于怎样处理,我也不知道
ets2008 2008-04-22
  • 打赏
  • 举报
回复
没有实现拒绝客户端的访问, 怎样在accept 之前拒绝客户端的访问?
longhiram 2008-04-21
  • 打赏
  • 举报
回复
需求不清,你自己估计已经实现了怎样控制拒绝客户端的访问,但是算法不够优化。但是没有具体的场景,你的想法和大家的想法可是一个天上一个地上。。。
所以还是把你的需求讲清楚,最好给个具体的场景。
ets2008 2008-04-21
  • 打赏
  • 举报
回复
我的问题是 在select 返回后,accept执行前进行相关的检查,运行一段时间后,cpu 的运算全耗费在这个过程(即:在select 返回后,accept执行前进行相关的检查)了,导致后面不能执行
xyxwangkai 2008-04-21
  • 打赏
  • 举报
回复
不用拒绝客户端的访问,如果超出最大连接数, 不处理后面的请求即可,比如系统支持1024个socket并发,如果超出,则主动断开close(fd);
一般情况下,如果有延迟处理和socket保持一段时间就断连接,1024已经够了
ets2008 2008-04-21
  • 打赏
  • 举报
回复
socket bind listen select accept ……
sailing0505 2008-04-21
  • 打赏
  • 举报
回复
你的服务器是怎么实现的?

23,126

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧