关于WinSock

Powerbird 2000-01-12 05:50:00
对于实时传送大量数据给客户端的情况,如何保证传送数据的完整性?
...全文
311 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dirotac 2000-11-13
  • 打赏
  • 举报
回复
关注
Firing_Sky 2000-01-15
  • 打赏
  • 举报
回复
其实我觉得TCP已经解决了数据完整性的大部分问题,但它有时确实也会出错,你可一个自己的TCP包在应用层上再加一个校验位什么的
Powerbird 2000-01-14
  • 打赏
  • 举报
回复
不知有没有哪位同人用过ASTA控件。
Powerbird 2000-01-14
  • 打赏
  • 举报
回复
请问WHQ,有什么好的方法?
software 2000-01-14
  • 打赏
  • 举报
回复
对于实时传送大量数据给客户端的情况,可以用UDP或TCP协议,但要注意,用UDP时会把$0误认为是结束,所以必须通过拆字节的方法保证每次传送的字节不为零,接收时再把它们重新组合,这样发送时最好加延时。虽然UDP协议不是很可靠,但只要双方同步,一般都不会有问题。如果还需要实现多客户的并发实时请求,最好的方法是用TCP。用DEPHI3以上的版本的TCP控件,完全可以实现。但正如WHQ所说,“不能保证一次发出的数据能在一次接收中全部收到,而且多次发送的数据可能会在一次接收中收到”,所以当数据量很大时,应该通过判断数据总长度的一致性来保证,而不能通过每个TCP包的长度保证。
WHQ 2000-01-13
  • 打赏
  • 举报
回复
顺序与发送的顺序一致,但不能保证一次发出的数据能在一次接收中全部收到,而且多次发送的数据可能会在一次接收中收到,因此你的程序必须数据边界。
kola 2000-01-13
  • 打赏
  • 举报
回复
可以自己制定传输协议,每次传送,使用软件握手,进行数据校验和数据编排,对于错误的数
据或未收到的数据进行重发!想起来有点麻烦,不知道哪位仁兄有何技巧!
jing 2000-01-13
  • 打赏
  • 举报
回复
我有这方面的C++ SDK程序如要的话mail me,看样子只能用来写
hw999 2000-01-13
  • 打赏
  • 举报
回复
谢谢
WHQ 2000-01-13
  • 打赏
  • 举报
回复
Powerbird 2000-01-12
  • 打赏
  • 举报
回复
有什么好的控件可完成TCP传送?
Delphi的ServerSocket和ClientSocket控件过于简单,不能完成一个完整的数据流的发送和接收。
另,我的需求是多客户的并发实时请求。
WHQ 2000-01-12
  • 打赏
  • 举报
回复
但如果数据量太大则可能因断线而导致传输失败,若用UPD协议,则必须由你的程序来保证数据的完整性,即如果发现部分数据未到达,服务器端必须重传这部分数据库

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧