以前做的东西都是使用TServerSocket和TCLientSocket
但现看了一个文章说这个不能穿透防火墙。
大家实现在广域网的数据通讯采用什么样的方法呢?

解决方案 »

  1.   

    indy 提供了更为全面,支持功能更多的 socket 类控件
    所以,有好的,当然用好的了
      

  2.   

    TServerSocket和TCLientSocket只能在windows系统中工作
      

  3.   

    我想借题问一下,大家觉得现在Indy是Delphi下最好的网络组件包了么?那么ICS和它比起来怎么样呢?还是免费的
      

  4.   

    我记得Delphi5时代的Indy好像有很多bug
      

  5.   

    Indy组件那么多,真不知道具体是做什么用的,有没有相关资料呢。
    E文不是很懂啊。
      

  6.   

    感觉delphi在网络组件这块很不稳定,虽说现在用INdy,但delphi5、6、7中经常处于变化不定,delphi2005中Indy相关组件又变得面目全非了,不知为何Borland在这么重要的领域却依靠第三方组件?
      

  7.   

    还是想问,大家觉得ICS组件怎样呢?http://www.overbyte.be
    应该也有不少人用过吧
      

  8.   

    ICS试过一两次,但后来仔细过较过同INDY的源码,还是改用INDY了.
      

  9.   

    我用Indy也用ICS
    Indy封装比较的完整
    ICS就简单的如果用底层点的开发,ICS有时候来得简单,而且因为ICS封装简单,所以ICS也比Indy稳定不少的Indy最大的弊端,就是版本不兼容,现在开发维护着Indy9,什么Indy10,完全不兼容,放弃Indy10的。用Indy9就很足够的,而且感觉上Indy9比Indy10稳定。Indy10支持所谓的新功能,Indy9修改一下就一样能支持的ICS就4年没变化过的,Bug也少,就是开发起来没有Indy的简单_____________________
    http://lysoft.7u7.net
      

  10.   

    TServerSocket和TCLientSocket
    原因我想有几点
    ..首先这东西对WINDOWS依赖太强,同BORLAND一向特别在意的跨平台发展思路有冲突.
    ..再就是这东西太'难用',它本身设计与编写上中规中矩,没有问题,用它们写简单的DEMO程序很容易,但用它们写出没有毛病的实用代码,却太难看到..包括一些DELPHI教程上面列出来的程序都有问题.
      

  11.   

    我只想晓得你们在非阻塞的时候用什么?还能用Indy吗?不要把TClientSocket和TServerSocket扁得一文不值得!
      

  12.   

    我觉得borland自己搞不如让第三方搞。indy是开源项目,很多志愿军在搞。borland自己的人不如去专攻编译器和vcl。
    非阻塞的时候,就用winsock好了。
    不过阻塞加多线程基本上已经能解决所有的问题了。
    若是专业搞socket的兄弟,怎么可能不懂winsock呢?
      

  13.   

    专业搞socket的兄弟也不会用Indy的。
      

  14.   

    学习。到底搞Socket用什么好呢?
      

  15.   

    为了跨平台,以前的组件用的是消息通知,需要CreateWindows创建一个隐藏窗口来接收消息。Linux下显然不支持类似机制。替代用的TCPClient和TCPServer使用select模型,在多数情况下通用性更好。没有组件是万能的,现在Windows开发服务器端很多是用I/O完成端口,Linux在2.6内核以后有个epoll,很多应用都是根据具体需求自己封装的。穿透防火墙,NAT打洞这种东西不是用个什么组件就能单纯搞定的。
      

  16.   

    谢谢Liu Yang 和哈欠!那我去试试Indy,有For D6的新版本吧。其实要说微软的东西还是满可靠的,实在不行就把VB的那个WinSock控件拿来用用。
      

  17.   

    D7不是有Tcpserver和TcpClient 吗?
      

  18.   

    ics 用http的协议速度要比indy 要快,indy就是用起来简单;但做windows 下的 server端还是自己规规矩锯的用socket 2写完成端口,要不就用tserversocket,用线程阻塞的模型只是编写容易罢了,一台pc开不了多少线程,还有并发,vc++写的并发超过500个丢失都很严重。
      

  19.   

    我看讨论这个和讨论用VB或D一个样,没有个结果