关于Indy的一个小问题(50分)

  • 主题发起人 主题发起人 masm
  • 开始时间 开始时间
M

masm

Unregistered / Unconfirmed
GUEST, unregistred user!
以下例程:
...
procedure TfrmMain.IdTCPServerExecute(AThread: TIdPeerThread);
var
MyRec : MyRecord;
I:integer;
begin

AThread.connection.ReadBuffer(MyRec,SizeOf(MyRec));//收纪录
AThread.connection.WriteBuffer(MyRec,SizeOf(MyRec),true);//发送纪录
end;
...
Indy中怎么得到收到数据包的大小??总不至于发送的数据都采用同一个记录,发送一个字节和发送1K个字节
都是固定的长度发送,这样太低能了。怎么办?
 
很难么??????
 
athread.Connection.RecvBufferSize
 
樓上的不對. RecvBufferSize只是接收衝區的最大值.
要獲得當前已經接收到的字節數,需要使用AThread.Connection.CurrentReadBufferSize,
 
當然你直接使用是不行的.正確的獲得當前接收到多少字節程序如下:
var
Size:Integer;
begin
AThread.Connection.ReadFromStack; //不能缺少.
Size:=AThread.Connection.CurrentReadBufferSize;
end;

另:
這段時間我在研究Indy控件組.所以有問題可以交流.
 
接受答案了.
 

Similar threads

D
回复
0
查看
897
DelphiTeacher的专栏
D
D
回复
0
查看
853
DelphiTeacher的专栏
D
D
回复
0
查看
828
DelphiTeacher的专栏
D
后退
顶部