奇怪的TCP数据包(100分)

  • 主题发起人 主题发起人 ccxxzz
  • 开始时间 开始时间
C

ccxxzz

Unregistered / Unconfirmed
GUEST, unregistred user!
做过几个小软件,发现了TCP问题:
  如果采用DELPHI做SOCKET服务器,VB做客户端,发现套接不稳,网上有的人说最大TCP数据包MTU为1024、1500、65535的,晕,如果发送1024以下的文本数据完全正确,发送给VB的客户SOCKET,如果发送2K、4K纯文本数据,VB接收方真的是错误百出,有时能收到正常的数据,有时候是部分数据收到!
问:如何处理TCP数据包一次传输的真实大小?
 
不太明白,当前更不明白VB了!帮你顶!
 
呵呵,没有回答啊,也只有一个人顶,问题想破脑袋了,解决是解决了,处理的比较模糊!文本数据用SOCKET发送给VB客户SOCKET,由于多次连接、握手、发送,不管多大的东西,用TCP的sendtext不会再有错了!模糊解决方法,也可供参考!
 
模糊解决方法?是什么方法
lz的解决应该是因为握手处理得好,解决的吧。
 
"不管多大的东西"?
除非做了緩沖處理,否則不可能超過64K。
 
呵呵!除了緩沖,重要的是对STRING的处理!否则还是不正确的!头破的原因,其实是很简单的了!delphi的非标准STRING 与VB标准的STRING的处理上!
 
你要清楚VB是不区分单、双字节的,估计你应该是这里出现问题了
 
呵呵,自己查代码吧。TCP是流化的所以无所谓分包不分包,它会保证数据的完整性的。
 
用setsockopt()设置socket缓冲池的大小
 
后退
顶部