- Код: Выделить всё
start strip.exe main.exe
start upx.exe main.exe
После некоторых компиляций ,и выполнения приведенного выше bat файла размер exe - 78Kb ,после некоторых - 470 примерно. Исходный код не менялся (ни символа) ,параметры среды и компилятора не менялись.
- Код: Выделить всё
program Talk;
{$threading on}
uses sysutils ,crt ,
blcksock in'lib/blcksock.pas';
var finished : longint;
ip,locip : string;
function f1 (p : pointer) : longint;
var s : string;
DGS : TUDPBlockSocket;
begin
DGS := TUDPBlockSocket.create;
DGS.CreateSocket;
DGS.Bind(locip,'2007');
with DGS do
writeln('binding DGSSend ',GetErrorDesc(LastError));
DGS.Connect(ip,'2008');
with DGS do
writeln('connecting DGSSend ',GetErrorDesc(LastError));
while true do
begin
readln(s);
{ DGS.SendBufferTo(@s,length(s) + 1);}
DGS.SendString(s);
writeln('Sender floods');
end;
InterLockedIncrement(finished);
f1 := 0;
end;
function f2 (p : pointer) : longint;
var DGS : TUDPBlockSocket;
s : string;
k : longint;
begin
DGS := TUDPBlockSocket.Create;
DGS.CreateSocket;
DGS.bind(locip,'2008');
with DGS do
writeln('binding DGSRecv ',GetErrorDesc(LastError));
while true do
begin
try
k := DGS.WaitingDataEx;
while k > 0 do
begin
s := DGS.RecvString(10);
writeln(s);
writeln('Receiver floods');
k := DGS.WaitingDataEx;
end;
except;
end;
end;
InterLockedIncrement(finished);
f2 := 0;
end;
begin
finished := 0;
writeln('remote ip::');
readln(ip);
writeln('local ip::');
readln(locip);
BeginThread(@f1);
BeginThread(@f2);
while finished < 2 do;
readln;
end.