由于对方发送数据是用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方法读字符串就不会发生这个问题了,这是为什么?那我如何判断对方发给我的是字符串呢还是数据流呢?谢谢!
var recbuf:pointer;
ilength:integer;
begin
ilength := socket.receivelength;
getmem(recbuf,ilength);
socket.receivebuf(recbuf,ilength);
end;
结果发现ilength取来的长度和发来的字符串数据长度相同是正确的,可是一旦读socket值后发现长度多了几个字节,如果我用receivetext方法读字符串就不会发生这个问题了,这是为什么?那我如何判断对方发给我的是字符串呢还是数据流呢?谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货