indy的TCPClient控件接收信息的问题(50分)

  • 主题发起人 主题发起人 疾风之猫
  • 开始时间 开始时间
use
...
type
TfmClient = class;
TReceiveThread = class(TThread)
private
FForm : TfmClient;
procedure ShowMessage;
Function checkreply(Flag:dword):byte;
protected
procedure Execute; override;
public
send_p:^byte;
constructor Create(F: TfmClient); reintroduce;
end;
TfmClient = class(TForm)
主窗口类定义
...

constructor TReceiveThread.Create(F: TfmClient);
begin
FForm := F;
inherited Create(False);
end;
procedure TReceiveThread.Execute;
var
I:Integer;
P:^byte;
begin
...
I:=FForm.IdTCPClient1.ReadFromStack;
FForm.IdTCPClient1.ReadBuffer(P^,I);
...
end;
...

 
他是要事件驱动型,楼上的方法只能读一次.

我也正在研究noblocking的winsock调用,不过老在建立消息循环的时候出错.:(
 
如果要事件驱动型的,就不要用indy的控件,我用的是Turbopower internet pro
 
to:DepYuka
只能读一次???放在while循环里不就行了,设置一个结束变量退出。你们对于线程的理解力太差了!!!
 
后退
顶部