Use TByteDynArray instead of string for raw buffer
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@771 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
d673332bf8
commit
8650ae4029
@ -30,13 +30,14 @@ Type
|
||||
TInt64S = Int64; TInt64U = QWord;
|
||||
TBoolData = Boolean;
|
||||
TEnumData = Int64;
|
||||
TAnsiStringData = AnsiString;
|
||||
TAnsiStringData = TBinaryString;
|
||||
TWideStringData = WideString;
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
TUnicodeStringData = UnicodeString;
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
TAnsiCharacter = AnsiChar;
|
||||
TWideCharacter = WideChar;
|
||||
TByteDynArray = wst_types.TByteDynArray;
|
||||
|
||||
TFloat_Single_4 = Single;
|
||||
TFloat_Double_8 = Double;
|
||||
@ -66,6 +67,7 @@ Type
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
procedure WriteUnicodeStr(Const AData : TUnicodeStringData);
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
procedure WriteBinary(const AData : TByteDynArray);
|
||||
|
||||
procedure WriteSingle(Const AData : TFloat_Single_4);
|
||||
procedure WriteDouble(Const AData : TFloat_Double_8);
|
||||
@ -97,6 +99,7 @@ Type
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
function ReadUnicodeStr():TUnicodeStringData;
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
function ReadBinary() : TByteDynArray;
|
||||
|
||||
function ReadSingle():TFloat_Single_4;
|
||||
function ReadDouble():TFloat_Double_8;
|
||||
@ -231,6 +234,7 @@ Type
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
procedure WriteUnicodeStr(Const AData : TUnicodeStringData);
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
procedure WriteBinary(const AData : TByteDynArray);
|
||||
|
||||
procedure WriteSingle(Const AData : TFloat_Single_4);
|
||||
procedure WriteDouble(Const AData : TFloat_Double_8);
|
||||
@ -268,6 +272,7 @@ Type
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
function ReadUnicodeStr():TUnicodeStringData;
|
||||
{$ENDIF WST_UNICODESTRING}
|
||||
function ReadBinary() : TByteDynArray;
|
||||
|
||||
function ReadSingle():TFloat_Single_4;
|
||||
function ReadDouble():TFloat_Double_8;
|
||||
@ -437,6 +442,16 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TDataStore.WriteBinary(const AData : TByteDynArray);
|
||||
var
|
||||
i : TInt32S;
|
||||
begin
|
||||
i := Length(AData);
|
||||
WriteInt32S(i);
|
||||
if ( i > 0 ) then
|
||||
FStream.Write(AData[1],i);
|
||||
end;
|
||||
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
procedure TDataStore.WriteUnicodeStr(const AData: TUnicodeStringData);
|
||||
|
||||
@ -615,6 +630,16 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TDataStoreReader.ReadBinary() : TByteDynArray;
|
||||
var
|
||||
i : TInt32S;
|
||||
begin
|
||||
i := ReadInt32S();
|
||||
SetLength(Result,i);
|
||||
if ( i > 0 ) then
|
||||
FStream.ReadBuffer(Result[1],i);
|
||||
end;
|
||||
|
||||
{$IFDEF WST_UNICODESTRING}
|
||||
function TDataStoreReader.ReadUnicodeStr(): TUnicodeStringData;
|
||||
var
|
||||
|
@ -113,7 +113,7 @@ procedure TTCPTransport.SendAndReceive(ARequest, AResponse: TStream);
|
||||
var
|
||||
wrtr : IDataStore;
|
||||
buffStream : TMemoryStream;
|
||||
strBuff : TBinaryString;
|
||||
binBuff : TByteDynArray;
|
||||
bufferLen : LongInt;
|
||||
begin
|
||||
buffStream := TMemoryStream.Create();
|
||||
@ -123,10 +123,10 @@ begin
|
||||
wrtr.WriteAnsiStr(Target);
|
||||
wrtr.WriteAnsiStr(ContentType);
|
||||
wrtr.WriteAnsiStr(Self.Format);
|
||||
SetLength(strBuff,ARequest.Size);
|
||||
SetLength(binBuff,ARequest.Size);
|
||||
ARequest.Position := 0;
|
||||
ARequest.Read(strBuff[1],Length(strBuff));
|
||||
wrtr.WriteAnsiStr(strBuff);
|
||||
ARequest.Read(binBuff[1],Length(binBuff));
|
||||
wrtr.WriteBinary(binBuff);
|
||||
buffStream.Position := 0;
|
||||
wrtr.WriteInt32S(buffStream.Size-4);
|
||||
buffStream.Position := 0;
|
||||
|
@ -139,7 +139,8 @@ var
|
||||
locInStream, locOutStream : TMemoryStream;
|
||||
wrtr : IDataStore;
|
||||
rdr : IDataStoreReader;
|
||||
buff, trgt,ctntyp, frmt : TBinaryString;
|
||||
trgt,ctntyp, frmt : TBinaryString;
|
||||
buff : TByteDynArray;
|
||||
rqst : IRequestBuffer;
|
||||
i : PtrUInt;
|
||||
begin
|
||||
@ -160,7 +161,7 @@ begin
|
||||
trgt := rdr.ReadAnsiStr();
|
||||
ctntyp := rdr.ReadAnsiStr();
|
||||
frmt := rdr.ReadAnsiStr();
|
||||
buff := rdr.ReadAnsiStr();
|
||||
buff := rdr.ReadBinary();
|
||||
|
||||
{$IFDEF WST_DBG}
|
||||
WriteLn(buff);
|
||||
@ -169,6 +170,7 @@ begin
|
||||
rdr := nil;
|
||||
locInStream.Size := 0;
|
||||
locInStream.Write(buff[1],Length(buff));
|
||||
SetLength(buff,0);
|
||||
locInStream.Position := 0;
|
||||
rqst := TRequestBuffer.Create(trgt,ctntyp,locInStream,locOutStream,frmt);
|
||||
rqst.GetPropertyManager().SetProperty(sREMOTE_IP,AContext.Binding.PeerIP);
|
||||
@ -180,7 +182,7 @@ begin
|
||||
locOutStream.Read(buff[1],i);
|
||||
locOutStream.Size := 0;
|
||||
wrtr := CreateBinaryWriter(locOutStream);
|
||||
wrtr.WriteAnsiStr(buff);
|
||||
wrtr.WriteBinary(buff);
|
||||
locOutStream.Position := 0;
|
||||
{$IFDEF INDY_10}
|
||||
AContext.Connection.IOHandler.Write(locOutStream,locOutStream.Size,False);
|
||||
|
@ -13,7 +13,6 @@
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<Icon Value="0"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<ActiveEditorIndexAtStart Value="0"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -38,16 +37,14 @@
|
||||
<PackageName Value="wst_core"/>
|
||||
</Item2>
|
||||
</RequiredPackages>
|
||||
<Units Count="10">
|
||||
<Units Count="14">
|
||||
<Unit0>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ws_client"/>
|
||||
<CursorPos X="13" Y="8"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="29"/>
|
||||
<Loaded Value="True"/>
|
||||
<CursorPos X="3" Y="26"/>
|
||||
<TopLine Value="16"/>
|
||||
<UsageCount Value="30"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="echo_service_proxy.pas"/>
|
||||
@ -55,9 +52,7 @@
|
||||
<UnitName Value="echo_service_proxy"/>
|
||||
<CursorPos X="3" Y="35"/>
|
||||
<TopLine Value="31"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="29"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="30"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="echo_service.pas"/>
|
||||
@ -65,36 +60,28 @@
|
||||
<UnitName Value="echo_service"/>
|
||||
<CursorPos X="3" Y="25"/>
|
||||
<TopLine Value="14"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="29"/>
|
||||
<Loaded Value="True"/>
|
||||
<UsageCount Value="30"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="..\..\..\synapse_tcp_protocol.pas"/>
|
||||
<UnitName Value="synapse_tcp_protocol"/>
|
||||
<CursorPos X="1" Y="74"/>
|
||||
<TopLine Value="69"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<CursorPos X="41" Y="151"/>
|
||||
<TopLine Value="148"/>
|
||||
<UsageCount Value="15"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="..\..\..\soap_formatter.pas"/>
|
||||
<UnitName Value="soap_formatter"/>
|
||||
<CursorPos X="1" Y="235"/>
|
||||
<TopLine Value="224"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="15"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit4>
|
||||
<Unit5>
|
||||
<Filename Value="..\..\..\service_intf.pas"/>
|
||||
<UnitName Value="service_intf"/>
|
||||
<CursorPos X="1" Y="221"/>
|
||||
<TopLine Value="210"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="14"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="E:\lazarus26r2.2.2.2\fpc\2.2.2\source\rtl\objpas\sysutils\sysutilh.inc"/>
|
||||
@ -113,9 +100,7 @@
|
||||
<Filename Value="E:\lazarus26r2.2.2.2\fpc\2.2.2\source\rtl\inc\wstringh.inc"/>
|
||||
<CursorPos X="20" Y="87"/>
|
||||
<TopLine Value="74"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="14"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit8>
|
||||
<Unit9>
|
||||
<Filename Value="E:\lazarus26r2.2.2.2\fpc\2.2.2\source\rtl\inc\systemh.inc"/>
|
||||
@ -123,129 +108,36 @@
|
||||
<TopLine Value="223"/>
|
||||
<UsageCount Value="9"/>
|
||||
</Unit9>
|
||||
<Unit10>
|
||||
<Filename Value="..\..\..\wst_types.pas"/>
|
||||
<UnitName Value="wst_types"/>
|
||||
<CursorPos X="16" Y="30"/>
|
||||
<TopLine Value="16"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit10>
|
||||
<Unit11>
|
||||
<Filename Value="..\..\..\indy_tcp_protocol.pas"/>
|
||||
<UnitName Value="indy_tcp_protocol"/>
|
||||
<CursorPos X="69" Y="148"/>
|
||||
<TopLine Value="137"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit11>
|
||||
<Unit12>
|
||||
<Filename Value="..\..\..\synapse_http_protocol.pas"/>
|
||||
<UnitName Value="synapse_http_protocol"/>
|
||||
<CursorPos X="15" Y="56"/>
|
||||
<TopLine Value="45"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit12>
|
||||
<Unit13>
|
||||
<Filename Value="..\..\..\indy_http_protocol.pas"/>
|
||||
<UnitName Value="indy_http_protocol"/>
|
||||
<CursorPos X="3" Y="147"/>
|
||||
<TopLine Value="143"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit13>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="..\..\..\service_intf.pas"/>
|
||||
<Caret Line="220" Column="1" TopLine="209"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="..\..\..\service_intf.pas"/>
|
||||
<Caret Line="436" Column="1" TopLine="425"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="..\..\..\service_intf.pas"/>
|
||||
<Caret Line="437" Column="1" TopLine="426"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="..\..\..\service_intf.pas"/>
|
||||
<Caret Line="438" Column="1" TopLine="427"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="..\..\..\service_intf.pas"/>
|
||||
<Caret Line="221" Column="1" TopLine="210"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="..\..\..\soap_formatter.pas"/>
|
||||
<Caret Line="225" Column="13" TopLine="206"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="..\..\..\soap_formatter.pas"/>
|
||||
<Caret Line="220" Column="1" TopLine="209"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="..\..\..\synapse_tcp_protocol.pas"/>
|
||||
<Caret Line="106" Column="1" TopLine="95"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="..\..\..\synapse_tcp_protocol.pas"/>
|
||||
<Caret Line="107" Column="1" TopLine="96"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="..\..\..\synapse_tcp_protocol.pas"/>
|
||||
<Caret Line="108" Column="1" TopLine="97"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="..\..\..\soap_formatter.pas"/>
|
||||
<Caret Line="235" Column="1" TopLine="224"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="..\..\..\synapse_tcp_protocol.pas"/>
|
||||
<Caret Line="134" Column="1" TopLine="123"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="..\..\..\synapse_tcp_protocol.pas"/>
|
||||
<Caret Line="74" Column="1" TopLine="63"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="18" Column="72" TopLine="6"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="27" Column="44" TopLine="8"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="30" Column="26" TopLine="15"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="E:\lazarus26r2.2.2.2\fpc\2.2.2\source\rtl\inc\wstringh.inc"/>
|
||||
<Caret Line="85" Column="52" TopLine="74"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="27" Column="19" TopLine="6"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="24" Column="25" TopLine="14"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="23" Column="5" TopLine="15"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="32" Column="41" TopLine="22"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="33" Column="1" TopLine="22"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="16" Column="1" TopLine="11"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="32" Column="1" TopLine="21"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="33" Column="39" TopLine="22"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="37" Column="9" TopLine="22"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="33" Column="1" TopLine="22"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="13" Column="30" TopLine="2"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="15" Column="3" TopLine="1"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="ws_client.pas"/>
|
||||
<Caret Line="11" Column="4" TopLine="11"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
<JumpHistory Count="0" HistoryIndex="-1"/>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="8"/>
|
||||
|
@ -7,7 +7,7 @@ uses
|
||||
cthreads, cwstring,
|
||||
{$ENDIF}
|
||||
Classes, SysUtils,
|
||||
service_intf, soap_formatter, synapse_http_protocol,
|
||||
service_intf, soap_formatter, synapse_http_protocol, //synapse_tcp_protocol,
|
||||
echo_service, echo_service_proxy;
|
||||
|
||||
const
|
||||
@ -21,8 +21,10 @@ var
|
||||
c : Integer;
|
||||
begin
|
||||
SYNAPSE_RegisterHTTP_Transport();
|
||||
//SYNAPSE_RegisterTCP_Transport();
|
||||
|
||||
locService := wst_CreateInstance_IEchoService('SOAP:','HTTP:','http://127.0.0.1:8000/services/IEchoService');
|
||||
//locService := wst_CreateInstance_IEchoService('SOAP:','TCP:Port=1234;Target=IEchoService;','127.0.0.1');
|
||||
|
||||
WriteLn('WST WideString Sample - Client');
|
||||
|
||||
|
@ -111,7 +111,7 @@ procedure TTCPTransport.SendAndReceive(ARequest, AResponse: TStream);
|
||||
Var
|
||||
wrtr : IDataStore;
|
||||
buffStream : TMemoryStream;
|
||||
strBuff : TBinaryString;
|
||||
binBuff : TByteDynArray;
|
||||
bufferLen : LongInt;
|
||||
i, j, c : PtrInt;
|
||||
begin
|
||||
@ -122,10 +122,10 @@ begin
|
||||
wrtr.WriteAnsiStr(Target);
|
||||
wrtr.WriteAnsiStr(ContentType);
|
||||
wrtr.WriteAnsiStr(Self.Format);
|
||||
SetLength(strBuff,ARequest.Size);
|
||||
SetLength(binBuff,ARequest.Size);
|
||||
ARequest.Position := 0;
|
||||
ARequest.Read(strBuff[1],Length(strBuff));
|
||||
wrtr.WriteAnsiStr(strBuff);
|
||||
ARequest.Read(binBuff[1],Length(binBuff));
|
||||
wrtr.WriteBinary(binBuff);
|
||||
buffStream.Position := 0;
|
||||
wrtr.WriteInt32S(buffStream.Size-4);
|
||||
|
||||
@ -144,11 +144,11 @@ begin
|
||||
i := 1024;
|
||||
if ( i > bufferLen ) then
|
||||
i := bufferLen;
|
||||
SetLength(strBuff,i);
|
||||
SetLength(binBuff,i);
|
||||
repeat
|
||||
j := FConnection.RecvBufferEx(@(strBuff[1]),i,DefaultTimeOut);
|
||||
j := FConnection.RecvBufferEx(@(binBuff[1]),i,DefaultTimeOut);
|
||||
FConnection.ExceptCheck();
|
||||
AResponse.Write(strBuff[1],j);
|
||||
AResponse.Write(binBuff[1],j);
|
||||
Inc(c,j);
|
||||
i := Min(1024,(bufferLen-c));
|
||||
until ( i =0 ) or ( j <= 0 );
|
||||
|
@ -99,7 +99,7 @@ end;
|
||||
|
||||
function TClientHandlerThread.ReadInputBuffer(): Integer;
|
||||
var
|
||||
strBuff : TBinaryString;
|
||||
binBuff : TByteDynArray;
|
||||
bufferLen : LongInt;
|
||||
i, j, c, readBufferLen : PtrInt;
|
||||
begin
|
||||
@ -119,11 +119,11 @@ begin
|
||||
i := 1024;
|
||||
if ( i > bufferLen ) then
|
||||
i := bufferLen;
|
||||
SetLength(strBuff,i);
|
||||
SetLength(binBuff,i);
|
||||
repeat
|
||||
j := FSocketObject.RecvBufferEx(@(strBuff[1]),i,DefaultTimeOut);
|
||||
j := FSocketObject.RecvBufferEx(@(binBuff[1]),i,DefaultTimeOut);
|
||||
FSocketObject.ExceptCheck();
|
||||
FInputStream.Write(strBuff[1],j);
|
||||
FInputStream.Write(binBuff[1],j);
|
||||
Inc(c,j);
|
||||
if ( ( bufferLen - c ) > 1024 ) then
|
||||
i := 1024
|
||||
@ -173,7 +173,8 @@ procedure TClientHandlerThread.Execute();
|
||||
var
|
||||
wrtr : IDataStore;
|
||||
rdr : IDataStoreReader;
|
||||
buff, trgt,ctntyp, frmt : TBinaryString;
|
||||
trgt,ctntyp, frmt : TBinaryString;
|
||||
buff : TByteDynArray;
|
||||
rqst : IRequestBuffer;
|
||||
i : PtrUInt;
|
||||
begin
|
||||
@ -196,10 +197,11 @@ begin
|
||||
trgt := rdr.ReadAnsiStr();
|
||||
ctntyp := rdr.ReadAnsiStr();
|
||||
frmt := rdr.ReadAnsiStr();
|
||||
buff := rdr.ReadAnsiStr();
|
||||
buff := rdr.ReadBinary();
|
||||
rdr := nil;
|
||||
FInputStream.Size := 0;
|
||||
FInputStream.Write(buff[1],Length(buff));
|
||||
SetLength(buff,0);
|
||||
FInputStream.Position := 0;
|
||||
rqst := TRequestBuffer.Create(trgt,ctntyp,FInputStream,FOutputStream,frmt);
|
||||
rqst.GetPropertyManager().SetProperty(sREMOTE_IP,FSocketObject.GetRemoteSinIP());
|
||||
@ -211,7 +213,8 @@ begin
|
||||
FOutputStream.Read(buff[1],i);
|
||||
FOutputStream.Size := 0;
|
||||
wrtr := CreateBinaryWriter(FOutputStream);
|
||||
wrtr.WriteAnsiStr(buff);
|
||||
wrtr.WriteBinary(buff);
|
||||
SetLength(buff,0);
|
||||
SendOutputBuffer();
|
||||
ClearBuffers();
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user