A
Adnil
Unregistered / Unconfirmed
GUEST, unregistred user!
写了一个构件,包含了一个ClientSocket组件,大致框架如下:
TMySocket = class(TComponent)
private
FSocket: TClientSocket;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
constructor TMySocket.Create(AOwner: TComponent);
begin
inherited;
if not (csDesigning in ComponentState) then
begin
FSocket := TClientSocket.Create(Self);
FSocket.ClientType := ctBlocking;
end;
end;
destructor TMySocket.Destroy;
begin
FreeAndNil(FSocket);
inherited;
end;
窗口调用的代码如下:
Conn := TMySocket.Create(nil);
Conn.Connect;
......
Conn.Disconnect;
Conn.Free; //??
窗口调用的代码在第一次使用的时候一切正常,但是如果再次调用,就会发生socket一直
连不上服务器的问题,偶调试了半天,把Conn.Free;这句注释掉,就一切正常了。
有人能解释原因吗?
TMySocket = class(TComponent)
private
FSocket: TClientSocket;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
constructor TMySocket.Create(AOwner: TComponent);
begin
inherited;
if not (csDesigning in ComponentState) then
begin
FSocket := TClientSocket.Create(Self);
FSocket.ClientType := ctBlocking;
end;
end;
destructor TMySocket.Destroy;
begin
FreeAndNil(FSocket);
inherited;
end;
窗口调用的代码如下:
Conn := TMySocket.Create(nil);
Conn.Connect;
......
Conn.Disconnect;
Conn.Free; //??
窗口调用的代码在第一次使用的时候一切正常,但是如果再次调用,就会发生socket一直
连不上服务器的问题,偶调试了半天,把Conn.Free;这句注释掉,就一切正常了。
有人能解释原因吗?