如何做才能使支持的人数越多,前提是使用TCP协议?
解决方案 »
- 请教高手:根据IP分别禁用或启用2块网卡的问题。(!!!!高分酬谢!!!!)
- 马上结~~~
- vb用winsock发送附件
- 如何获得当前目录的上一级目录?
- 急,我用IE访问某个网页只需5、6秒,为什么在vb中用api:InternetReadFile访问,需要4、5分钟呢?谢谢
- 请教:怎样设置图形的热点?急!!!!!!
- 主从表绑定问题。
- 16进制打开1.rar压缩文件怎么写?
- VBA调用ACCESS2000文件
- 急!VB程序能否读取&修改其他程序的内存单元?
- 用Winsock下载二进制文件时,怎样才知道文件已下载完了呢?
- 各位大哥,ACCESS数据库能在网络上进步同步复制吗?急呀!!!!!!!!
计算机可以绑定多个ip
明白了不?
又不是udp 协议的
只要你的内存够大就可以生成无数个 个人观点哈!
只要你的内存够大就可以生成无数个,还可以用动态方式,客户端下线了就关闭
分配的Winsock 这样一般支持同时在线人数就更多了,但实际上的人数据
就要跟据机器的配置,网络的好坏,Tcp 联接数多了很耗资源的,
因为要维护联接
一个控件最多也只支持65535(理论值),而且操作系统也只支持这么多个客户端同时连接(理论值)
WINSOCK控件实现的原理(据我猜测):在接受一个连接时,会用一个线程来处理,然后接收到数据会产生控件事件,把数据写到缓冲区,然后触发事件,最后你的应用程序就会收到数据了,一个普通的PC机最多最多可能支持2000个线程吧,不然会崩的,当然还有速度的问题了1.如果要面向个客户端连接,就采用线程池技术,也就是说:一般情况下同时连接的情形并不多见,大多都是来了一批人,同时又会走一批人,这样程序总是忙着去创建线程,销毁线程,解决这种问题的方法是,预创建一批线程,当有一个客户端连接的时候,就选用一个已经创建好的线程,置其标志为占用,当其离开的时候,就置其标志为空闲,就为其它连接做好了准备。
2.一台机子的资源总是有限的,当同时有上千人在线的时候,不可能让一个CPU来处理,不然的话,一个机子的操作系统就会在上千个线程之间进行来回线换,这样系统开销和延迟都很大,是行不通的,就采用分布式处理,负载平衡技术,也就是说:当有一百人连接的时候,就分摊在十台计算机上,每台处理十个,有一千个连接时,每台处理一百个
从理论上来说,没有限制。这么说吧:用Winsock控件最多有32767个端口,因为
LocalPort属性是Integer,但Integer的范围是-32768到32767之间,而端口的
设置不能为0或负数,所以最多支持32767个端口。而控件可以列为数组,而控
件数组最大的定义也就是32767个控件。如:Load Winsock(32768)肯定出错。
因为Winsock控件创建服务后与客户端连接又可以启动另一个数组控件进行某个
端口的侦听,所以以一个Winsock控件数组来计算一个端口的话,应该可以连接
32767个客户端,但是如果增加控件组侦听其他的端口,可以计算成可连接
32767的2次方个客户端,如果程序配合得恰当,可以采用多个控件组侦听一个
端口的话,如一个名为Winsock1的控件组全部连接后就启用Winsock2进行新的
侦听的话,那么就可能是个天文数字了。只要你的机器和带宽允许,多少连接
都可以。但是这种看法也就是从理论上说说,从实际上还不能坑定。因为从计
算的角度来看的确很夸张。呵呵。