具体要求:
有4个服务器,2个10M独享,2个100M独享。
1.客户端的程序,在启动的时候要判断那个服务器快,然后连接上那个服务器,
2.然后向那个服务器发送一个命令,服务器程序根据这个命令查询数据库,然后把查询的结构通过某种加密技术返回给客户端,然后就可以断开连接了。在客户端的程序运行的过程中,还可能发送其他类型的查询命令。(因为客户要求客户端是不用安装的,所以没有考虑是用查询控件)。数据传送我是这样想的,客户端到服务器肯定很小,就一条命令,或一些查询关键字,但是服务器到客户端有一点点大,大约是1000--2000首歌的歌词、地址、名字。
3.希望能够实现服务器平衡负载。
4.希望能够对传过来的东西加密。
5.还有就是客户端意外断开的处理方法。
  关键麻烦在于,可能并发连接的数量比较多,有上千,以后还会增加,所以希望是用的技术可以支持。
  本人是用D7,对于网络编程可谓一知半解,在其他地方也问了好多人了,有说是用ServerSocket,ICS,kbmWM,完成端口等等技术的,但是没有一个确切的答案,我现在就看了下INDY控件,不知道这个可不可以支持到那么多的链接呢????

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5452/5452007.xml?temp=.2516443
    我写过 一个连接 测试的程序 每分钟 大约 30万 到 50 万 的 条数据 可能对你有用处
      

  2.   

    WEB技术稳定性如何,不如就直接在服务器上配置WEB服务器,然后你的客户端就使用HTTP协议来访问数据库好了,很简单,估计也完全可以满足你的要求!
      

  3.   

    就是你的客户端直接向WEB服务器发送查询命令,然后由WEB服务器访问数据库,然后WEB服务器要么直接将数据加密返回,要么就直接生成一个文件然后由你的客户端下载下来。这样,你的客户端也不用考虑什么断开链接之类的事情了,WEB服务器完全可以解决并发链接的问题。
      

  4.   

    gobiz(拔剑容易收剑难)的是个好建议,我以前倒是做过调过来的,一条简单命令下去,客户发给服务器一堆数据,采用的UDP
      

  5.   

    服务端配网站服务器或运行一个CGI
    客户端访问以参数的形式传递查询条件,如http://…….auth?name=……&kind=……
    返回结果以XML形式表现,XML中有满足条件的所有结果。如文件名、下载路径等(至于加密可在这一步实现)
    客户端可选择下载所需文件。这样服务端的响应速度比较快
      

  6.   

    客户端怎么知道什么时候下载呢?
    (有人給我过这样的建议:Appach+php+mySql,这样的话应该可以满足了吧)
      

  7.   

    客户端怎么知道什么时候下载呢?
    (有人給我过这样的建议:Appach+php+mySql,这样的话应该可以满足了吧)
    --------
    如果服务端决定采用网站的形式,那并发数的问题就在于网站的配置形式以及硬件和带宽了。
      

  8.   

    客户端不要管那个服务器快,指定连接一个服务器就可以.如果指定了服务器A则在服务器A上运行一个服务端程序,所有的客户端都通过这个服务端程序进行操作服务器端可以根据数据服务器的数据来创建对应的缓冲区列表,每个列表有一个线程来从缓冲区中取数据进行查询,并将查询结果返回服务端程序接收所有用户的请求,保存到当前空闲的缓冲区列表中.如果当前缓冲区服务线程都忙则放到性能好的服务器列表中.如果服务器有很多,也不一定要创建和服务器数据等量的缓冲区和线程.如果连接很多,很密集就考虑用IO完成端口来实现,一般的的情况用普通的SOCKET连接就可以了。
      

  9.   

    Apache + PHP + MySQL 是最好的方法当然,用 CGI 的话处理加密可能更好