如何知道idTcpClient收到了数据的大小? ( 积分: 100 )

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

chair3

Unregistered / Unconfirmed
GUEST, unregistred user!
由于服务端是VC写的,发出数据的时候,不带结束符,因此,客户端(idTcpClient)就无法用ReadLn来读取数据。

我用idTcpClient的ReadBuffer 方法,此时第二个参数为读取数据的大小。但我并不知道收到了多少个字节的数据。(根据帮助说明,如果设置过大,将无任何反应。事实上也如此)

请教各位兄弟,大家是如何使用的。谢谢。
 
由于服务端是VC写的,发出数据的时候,不带结束符,因此,客户端(idTcpClient)就无法用ReadLn来读取数据。

我用idTcpClient的ReadBuffer 方法,此时第二个参数为读取数据的大小。但我并不知道收到了多少个字节的数据。(根据帮助说明,如果设置过大,将无任何反应。事实上也如此)

请教各位兄弟,大家是如何使用的。谢谢。
 
IdTCPClient.ReadFromStack(False, -1, False); 参数是否引发异常和超时毫秒数
呵呵,当年我也遇到了这个问题。
 
如果服务器端不告诉你数据有多大,我们也没有办法知道
不过我们可以使用CurrentReadBuffer来得到从服务器端发过来的数据
CurrentReadBuffer是缓冲区的数据
s:=CurrentReadBuffer;
while s<>'' do
begin
recvstr:=recvstr+s;
s:=CurrentReadBuffer;
end;
 
后退
顶部