如何在服務器端用CSocket限制連接的客戶端數量?

sevecol 2001-11-06 04:35:58
謝謝了
...全文
84 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
caiyi9000 2001-11-07
  • 打赏
  • 举报
回复
客户端发出连请求之后,无论连接成功与否,在客户端都会发生FD_CONNECT事件,你在客户端定义FD_CONNECT事件的回调函数,此回调函数将传进一个errcode参数,若errcode为0,则表示连接成功;若不为0,则表示连接不成功,具体原因可由errcode得到。
zb_china 2001-11-07
  • 打赏
  • 举报
回复
客户端没必要知道
如果是HTTP服务,可以使用微软的扩展应答,好像是403.9,表示用户过多服务器不能承受
sevecol 2001-11-07
  • 打赏
  • 举报
回复
但是客户端不能知道呀,它只是认为连接上了
有什么办法能使客户端知道呢?
sevecol 2001-11-07
  • 打赏
  • 举报
回复
謝謝
caiyi9000 2001-11-06
  • 打赏
  • 举报
回复
不可能没有用?在accept()之前如果ClientNum已经到CLNT_MAX_NUM,程序就返回,根本就不接受连接,怎么会没用呢?
sevecol 2001-11-06
  • 打赏
  • 举报
回复
沒有用呀,我試了
caiyi9000 2001-11-06
  • 打赏
  • 举报
回复
你在服务器端定义一个全局变量
int ClientNum = 0;
每次accept()成功一个客户端后,
ClientNum ++;
并在accept()之前判断:
if(CLNT_MAX_NUM <= ClientNum)
{
AfxMessage("客户端个数溢出,拒绝接受连接!");
return 0;
}

并且,在接到某个客户端断开事件时
ClientNum--;
superdreamer 2001-11-06
  • 打赏
  • 举报
回复
Listen()能限制同时连接的客户端数量

4,358

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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