1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
//------------------------------------------------------------------------------
function c_send.sendrequete(qreq, qhost : string; var qrep : string; qport, qtaillerep : integer) : boolean;
var
qsock : tidtcpclient;
qtaille, compteur, qreqsize, intverif : integer;
qbytes: tbytes;
qread, tenvoie : tmemorystream;
bbool : boolean;
qrequete : string;
begin
result := false;
qrep := '';
c_error := '';
tenvoie := tmemorystream.Create;
qreqsize := 512;
qrequete := qreq;
intverif := usabine.private_cryptertmbss(qrequete,usabine.cryptage_tmbss_a,usabine.rempli_550_a,tenvoie,qreqsize);
if c_read_time_out < 1 then c_read_time_out := 3000;
if c_connect_time_out < 1 then c_connect_time_out := 3200;
qsock := tidtcpclient.Create;
qsock.Host := qhost;
qsock.Port := qport;
qsock.ReadTimeout := c_read_time_out;
qsock.ConnectTimeout := c_connect_time_out;
qread := tmemorystream.Create;
qtaille := tenvoie.Size;
setlength(qbytes,qtaille );
tenvoie.Seek(0,soFromBeginning);
tenvoie.ReadBuffer(qbytes[0],qtaille);
tenvoie.Free;
try
begin qsock.Connect; qsock.IOHandler.Write(qbytes,qtaille,0); end;
except
begin
qread.Free;
c_error := '<send>'; setlength(qbytes,0);
if e_debug <> nil then e_debug.Lines.Add('error_send_private_sendstr_getstr_2') ;
abort;
end; // except
end;
try
begin qsock.IOHandler.ReadStream(qread,qtaillerep,true); end;
except
begin
qread.Free;
c_error := '<receive>'; setlength(qbytes,0);
if e_debug <> nil then e_debug.Lines.Add('error_read_private_sendstr_getstr_3') ;
abort;
end; // except
end;
private_rep_fromstream(qread,qrep);
qread.Free;
qsock.IOHandler.CloseGracefully;
qsock.Socket.Close;
qsock.Free;
result := true;
end;
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------ |
Partager