代理服务器

来源:互联网 发布:淘宝药品都是货到付款 编辑:程序博客网 时间:2024/05/01 15:43

正在用IOCP来修改一个以前写的一个代理服务器程序。

现在关于控制用户连接数问题基本已经解决,采用事件来解决这个问题。首先建立一个全局的用户配置列表,创建一个监视线程来等待这个事件。把配置文件中最大连接数,每连接的最高带宽数据读入,同时这个列表保存当前活动连接数和处于等待状态的连接的一个链表,当有新连接进入时,判断是否达到最大连接数,否则直接投递一个WSARecv,是则把这个链接加入到等待连接链表中。当一个连接传输完成后,设置连接完成事件,监视线程得到事件后从链表中取出一个连接并投递一个WSARecv。这样可以实现控制连接数目但又不是直接断开超出最大连接数目连接的问题,解决了IE因为断开连接造成的不能正常浏览问题。

但关于带宽限制问题仍没完全解决,考虑使用timeSetEventTiem或CreateTimeQueueTimer延时投递WSARecv或WSASend来实现。

原创粉丝点击