<1>Socket最大的一个数据包是8K,如果你发送的数据超过这个值,那么将自动分包发送;
<2>如果要实现正确无误地接收数据源发送的所有数据,那么做些处理是十分必要的。主要的
   方法是在你的数据末尾添加结束标志(这是数据发送端要做的处理),在数据接收端要做的
   处理是:只要网络连接是正常的(即:Socket.Active:= true)那么就要不断地扫描缓冲区
   知道接收到结尾标志的时候就知道已经结束到完整的数据了。具体怎么实现,可是方法多
   样呀!

解决方案 »

  1.   

    我在服务器端建立一个阻塞式多线程Socket
    其中用到了TWinSocketStream
    接收数据用:Stream.read(...)  //stream是TWinSocketStream类型的
    我想知道用这种方式接收的数据是否会出现'断流'
    比如说:对方传来123456789
           我收到1234,而56789没有收到的情况
    因为我怀疑Stream是以流的方式传输的,可能会出现断流,我的观点对吗?
           
      

  2.   

    Socket连接有Stream 和 UDP两种,Stream传输没什么问题,
    UDP就不保险了