我不是高手,大家共同学习。你所说的公用ip上网应该就是利用代理服务器共享上网,即computerA具有类似192.168.0.x内部ip的情形。这种情况下,只有computerA主动连接computerB并且保持这种连接,B才能向A发送信息。因为ip
~~~~~~~~~~
192.168.0.x对B是路由不到的。代理服务器的一个重要功能就是如此,即保护内
网不被外网直接访问。qq是怎么实现的,我也不太懂,不过它应该也是这种情形,即A1,A2,A3...连接
B,B保存这些连接,所谓连接就是结构或类,当然最终确实是存在内存中,不过
不要担心内存不够用,我记得32位机器可寻址4GB的内存空间。另外qq也有数台
服务器共享分担。
~~~~~~~~~~
192.168.0.x对B是路由不到的。代理服务器的一个重要功能就是如此,即保护内
网不被外网直接访问。qq是怎么实现的,我也不太懂,不过它应该也是这种情形,即A1,A2,A3...连接
B,B保存这些连接,所谓连接就是结构或类,当然最终确实是存在内存中,不过
不要担心内存不够用,我记得32位机器可寻址4GB的内存空间。另外qq也有数台
服务器共享分担。
解决方案 »
- 热烈祝贺老马不卖自行车,来北京挨踢了
- 如何跳过密码验证读取ACCESS中的SQL链接表
- 都是datareport的引用,且版本一样,msdbrptr.dll与msdbrpt.dll两个文件不何不同呀?(都帮顶一下吧!)
- 我要实现textbox中方向键和DELETE键实现的功能怎么实现(用代码)?
- 如何用程序控制打印一文本文件的内容?
- 有两个form,先运行form1_load(),怎样一开始就运行form2?
- 关于MDI form和其child form
- 一个VB小问题
- 能近来看看吗??小弟需要你的帮忙 !
- 神呐!救救我吧!
- vb中,如何编写反回二维数组的函数
- VB已经入门,需要有点难度,讲得比较深的书,请介绍一下??
上网的,服务器通过ADSL、ISDN或其他方式都可以,代理呢,则 MS Proxy、
Wintage 之类的。这样局域网对外只有一个IP。但局域网内的机器都可以访
问Internet,并且都能够Ping同外网IP。实际上这样的网络情形很常见的。敬请各位 Winsock、VB 高手解答。
对于公用ip上网的情形,如果B要给A发送信息,只能如你所说—— "ComputerA主动请求连接ComputerB,一旦连接建立,
ComputerB接收连接的Winsock调用SendData方法就可以将消息发送给ComputerA而无需理会ComputerA的IP及Port号"此外别无其它方法,但是并不需要每次B给A发送信息时都要A主动连接,在第一次连接之后未断开之前,B都可以向A发送消息。即A只需主动连接一次。
当然协议要选面向连接的TCP(sckTCPProtocol),而不是UDP.
你到任何一个VB学习网站下载一个源代码看看就知道了。
得这个方法并不高明,如果有很多类似ComputerA的客户请求呢?那ComputerB
不是要总要同时保持N多个连接吗?这是一个静态的解决办法,而非动态的。
动态的就是ComputerB确实要给ComputerA发送消息的时候:建立连接、发
送、撤销连接。就是不知道QQ、ICQ这些东西是怎么实现的,如果要保持连接,那 QQ 有同时
几百万在线,这个做法显然行不通(我认为)。如果不是使用类似Winsock的
技术(包括Winsock空件或底层的Winsock API),那QQ是怎么做到的呢?敬请高手们解答、共同探讨。
自己去看看书先。
想想 QQ 同时在线有几百万,这些信息要保存下来该是多大,程序又怎么
能做大这么快的响应呢?