我打算用tcp/ip协议传输,请问这时是否要对数据进行校验。(50分)

  • 主题发起人 主题发起人 魏启明
  • 开始时间 开始时间

魏启明

Unregistered / Unconfirmed
GUEST, unregistred user!
局域网之间的数据传输:
以往都是做校验的(一个简单的算术和校验)
但是我看到,tcp/ip协议本身就有校验重发机制。
请问,我是不是没必要进行校验啊
 
没有必要!
因为TCP(传输控制协议)就可以保证数据的正确无误地传输。
 
我用sendtext()发现传送大于8192个字节时可以正常显示,大于8192就出错;
好想分成两次传送(两个包?)第一个长8192;第二个的长度则是无规律的(至
少我未找到)。
总之。这时传送的信息是错误的,我正在看sendbuf();是不是也会出现错误
 
windows tcpip对包的大小有限制1024,如果大于限制就要多包
 
可是好像是8k啊
 
需要, 他可以保证发过去的每一个字节都是正确的, 但不能保证一个自定义的应用层
报文的完整性, 这是需要你自己来校验的
 
同意 tseug
 
不必!
如果没有错误,send()返回的是传送的字节数,如果该值<>发送的字节数,你要继续发送剩余的数据.
不要假设包的大小是1024/2048/4096/8192...
 
当然不要了。
但我想你这里是指你自己定义的包的较检,
这当然要你完成,
你不可能扔个10M的数据给tcp/ip去发送而保证它的发送序列;
发送序列要靠自己维护
 
To:没理头号

如何维护发送序列[red]//发送序列要靠自己维护[/red]
 
给你举个例子,
就好比你有1,2个数据包
你发完1且确认接收端收到1后,再发2,再确认
 
明白了,但这会降低速度的。
 
有必要,windows tcpip对包的大小有限制1024*8,如果大于限制,通道会阻塞,但是否能
全部接收到所需数据,有必要进行校验!
 
多人接受答案了。
 

Similar threads

回复
0
查看
848
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部