重载TServerClientThread和它的protected ClientExecute
type
TServerClientThreadEx = class(TServerClientThread)
public
procedure ClientExecute; override;
end;
tform1 =class(TFOrm);
..
procedure ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
..
end;
{TFOrm1}
procedure TForm1.ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread := TServerClientThreadEx.Create(False, ClientSocket);
end;{my TServerClientThreadEx}
procedure TServerClientThreadEx.ClientExecute;
begin
//you code in here in single thread
end;
type
TServerClientThreadEx = class(TServerClientThread)
public
procedure ClientExecute; override;
end;
tform1 =class(TFOrm);
..
procedure ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
..
end;
{TFOrm1}
procedure TForm1.ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread := TServerClientThreadEx.Create(False, ClientSocket);
end;{my TServerClientThreadEx}
procedure TServerClientThreadEx.ClientExecute;
begin
//you code in here in single thread
end;
但是看Example里的ClientExecute的读写数据方法过于烦琐,而且要用等待时间来判断客户请求有没有到达或客户是否失去连接
有没有象NonBlocking方式那样用On...有了请求自动触发的?