【求助】如何解决tcp数据粘连(50)

  • 主题发起人 主题发起人 sdpdrh
  • 开始时间 开始时间
S

sdpdrh

Unregistered / Unconfirmed
GUEST, unregistred user!
如何解决tcp数据粘连,看到c可以用关闭Nagle算法实现,语句是socket.setTcpNoDelay(true);{关闭Nagle算法.立即发包},不知道D有类似的方法吗?请有经验的高手指点!
 
flag := 1;setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, @flag, sizeof(integer));
 
就这么用吗?还有什么注意事项吗?
 
TCP的Nagle算法是很有用的不要轻易关闭你可以考虑使用在TCP流中增加包关来分包
 
可行的办法就是。每个数据前面加一个长度. 每次读的时候先读长度.然后根据长度读数据。
 
我这的单片机每次只能读1包。。。无奈啊
 
啥是粘连啊?
 
看到c可以用关闭Nagle算法实现,语句是socket.setTcpNoDelay(true);{关闭Nagle算法.立即发包},不知道D有类似的方法吗?相当强悍的问题。
 
第一 语法是 delphi的, 第二 ... 既然 A语言可以,B一定可以...
 
无法解决啊。。。!
 
其实很简单的~只要先获得数据的长度,根据长度获得数据,就可以解决粘连的问题.
 
后退
顶部