|
@@ -119,7 +119,7 @@ type
|
|
|
Procedure Close;
|
|
|
function Seek(Offset: Longint; Origin: Word): Longint; override;
|
|
|
function Select(aCheck : TSocketStates; TimeOut : Integer): TSocketStates;
|
|
|
- Function CanRead(TimeOut : Integer): Boolean;
|
|
|
+ Function CanRead(TimeOut : Integer): Boolean; virtual;
|
|
|
Function Read (Var Buffer; Count : Longint) : longint; Override;
|
|
|
Function Write (Const Buffer; Count : Longint) :Longint; Override;
|
|
|
Property SocketOptions : TSocketOptions Read FSocketOptions
|
|
@@ -290,6 +290,8 @@ type
|
|
|
Protected
|
|
|
Procedure DoOnClose; override;
|
|
|
Property Server : TSocketServer Read FServer;
|
|
|
+ Public
|
|
|
+ Function CanRead(TimeOut : Integer): Boolean; override;
|
|
|
end;
|
|
|
|
|
|
{$if defined(unix) or defined(windows)}
|
|
@@ -362,6 +364,12 @@ resourcestring
|
|
|
|
|
|
{ TServerSocketStream }
|
|
|
|
|
|
+function TServerSocketStream.CanRead(TimeOut : Integer): Boolean;
|
|
|
+begin
|
|
|
+ Result:=inherited CanRead(TimeOut);
|
|
|
+ Result:=Result and Assigned(FServer); // main server is gone, cannot read from it
|
|
|
+end;
|
|
|
+
|
|
|
procedure TServerSocketStream.DoOnClose;
|
|
|
begin
|
|
|
if Assigned(FServer) then
|