==>Count := StrToInt(Copy(Buf, 1, 4));
这里的buf应该是str吧? 不过即使你用str也不可能达到你的目的,strtoint(copy(str, 1, 4))最大只有9999,呵呵,你想传送的是80k......
改动一下:
Count = PInteger(Integer(str))^; 即把str字符串的前四个字节作为一个Integer类型。
不过你插入时可不能用IntToStr啊。而是用类似PInteger(Integer(str))^ := Count这类语句赋值。
另外你的代码还有问题:
1.buf是怎么定义的? array [0..n] of char?
如果不是,那么第一句就是错的。
如果是,那么第二句又有问题了。str+buf会在遇到buf中第一个#0时停止,你的str就可能不全了。特别是如果你照上面的建议修改的话,则肯定会漏掉数据,因为第一个包的前4个字节中必有#0,除非你发送的数据>255M