用户端软件需要像服务器端发送各种类型数据(图片,文件等。。),而且数据量不小,如果在软件中建立多个Tidtcpclient和Tidtcpserver连接每个idtcpclient分别发送不同类型数据,这样是否会提高客户端发送数据的效率?

解决方案 »

  1.   


    多谢你的回复,这么说,客户端只需要一个TIDTCPCLIENT和服务端TIDTCPSERVER连接即可,无论发多少数据发什么类型数据都通过这个连接是吗?
    我之所以提这个问题,是看到一个软件里,客户端软件使用了好多个TIDTCPCLIENT连接服务端,有的用来管理用户的在线状态和信息收发,有的用来传输屏幕图形感觉停多于,不但不方便编程管理,而且对提高软件效率也有疑惑。因此才有此一问能否谈谈这方面的开发经验?
      

  2.   


    你有没有实际经历过?indy10底下的idtcpserver和idtcpclient的工作模式跟indy9有所差别,在indy9下,每个连接,服务端就开一个线程与之连接,处理该线程的IO.设计者可以用idthreadmgr来管理线程,但是在Indy10下,隐藏了用户对线程的接口,而改为idContext,每个连接对应一个idcontext,设计者不能再直接访问线程,实际上,INDY10下已经不在1个连接对应一个线程,而是统一的线程池来管理,系统自动根据IO来分配线程。虽然我没实践过,但是感觉多个连接会提高效率没有理论依据。。