由于对方发送数据是用sendtext发送字符串,有时会是用sendbuf发来数据流,在我用sendbuf接收sendbuf发来的数据时没有问题,但接收sendtext发来的字符串往往会多受到几个字节,不知道为什么?我的接收代码是这样的:
var recbuf:pointer;
    ilength:integer;
begin
   ilength := socket.receivelength;
   getmem(recbuf,ilength);
   socket.receivebuf(recbuf,ilength); 
end;
结果发现ilength取来的长度和发来的字符串数据长度相同是正确的,可是一旦读socket值后发现长度多了几个字节,如果我用receivetext方法读字符串就不会发生这个问题了,这是为什么?那我如何判断对方发给我的是字符串呢还是数据流呢?谢谢!