各位帮忙看看是什么原因:我在使用TTcpClient,TTcpServer做的通讯程序的时候,发现传送较长的数据包中间会发生错误。我做的系统内部通讯采用传送xml格式数据包来实现,但是发现如果传送的数据包比较大(1.5K)以上就会出现问题,在接受端发现接收到的数据中间就错了。我做了实验,在一台计算机上怎么传送都不会出问题,但是用两台计算机分别作发送和接受,就会出错,而且不同的计算机,出现错误的地方也不一样,有的可以传送长一点,有的就短。
各位块帮个忙了,项目已经在现场快要验收了,偶尔需要传送大的数据包。本来做的事实时监控,很少需要大数据包的传送的。已经搞了两天两夜了,还是不行。各位块帮忙看看
我想不会是空间本身的问题吧。当初选用这个控件就是为了不用组包,直接传送xml很舒服,没想到阿

解决方案 »

  1.   

    偶在系统负载很重的情况碰到过这个问题,可以放到线程里读写,然后把线程级别设高一些,或者用Indy组件,实在不行续传
      

  2.   

    所谓续传,是不是要手工组包阿
    就是怕组包麻烦,才使用的这个控件
    如果组包干脆就用ClientSocket,ServerSocket了我看ClientSocket,ServerSocket和INdy都需要组包的,每次传输的包都是不定的难道必须要组包吗
      

  3.   

    加一个包结尾标志,收到结尾标志且包长度正确完成一次,否则续传。
    与indy的readln类似,其实放到线程中应该可以的。