假设现在有
服务器A开放端口1、2
客户机B;
控制台C。
B通过1与A进行通讯,C通过2与A进行通讯。
如何控制当前已连接的B的最大数量,达到超出A授权许可给B的可连接最大数量范围时,断开最后个请求连接的B的通讯,同时其他已经连接成功的B通讯正常。
由于C通讯A时会激发A与对应B的通讯,B再返回数值给A,A将此反馈给C显示。
所以思路只想到如何控制端口1上可连接最大IP数来达到上面的效果。授权文件保存在A服务器上,例如许可10台B的连接。网络编程上不太熟悉,不知从何入手,希望高人赐教。

解决方案 »

  1.   

    看了半天才弄明白,问题内容。。为何不设置一个全局变量int count用于记录B客户机当前在线的个数
    每当A的1端口Accept()到B的连接,就判断count是否大于授权连接数量,如果大于则关闭改套节字,若小于正常连接然后count++。
    当然,最好使用临界变量保护count变量,否则在多线程环境下很容易出错的。还有,授权文件大可以不必放在A服务器上,可以直接放在C控制台上的。自己想一下怎么实现,想不出来再问吧。-------比较简单的问题,多动动脑子吧。-----------
      

  2.   

    你如何取得当前1端口上正在连接的IP数量?
    当你就这样判断count时,若关闭套节字.那其他正在连接的connect都会停滞.
    当一个B断开连接,再重新连接时,IP相同,但是连接已经少了.
    怎么清这个连接池的记录?
    网络编程不太熟悉,不是问题简单不简单的关系.
    唉.这样就想拿分...= =|||