假设现在有
服务器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的连接。网络编程上不太熟悉,不知从何入手,希望高人赐教。
服务器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的连接。网络编程上不太熟悉,不知从何入手,希望高人赐教。
每当A的1端口Accept()到B的连接,就判断count是否大于授权连接数量,如果大于则关闭改套节字,若小于正常连接然后count++。
当然,最好使用临界变量保护count变量,否则在多线程环境下很容易出错的。还有,授权文件大可以不必放在A服务器上,可以直接放在C控制台上的。自己想一下怎么实现,想不出来再问吧。-------比较简单的问题,多动动脑子吧。-----------
当你就这样判断count时,若关闭套节字.那其他正在连接的connect都会停滞.
当一个B断开连接,再重新连接时,IP相同,但是连接已经少了.
怎么清这个连接池的记录?
网络编程不太熟悉,不是问题简单不简单的关系.
唉.这样就想拿分...= =|||