Hello!
i have made a proxy (sniffer) based on TWsockets from www.overbyte.be
all works perfect... i capture packet and if need before send it back i
modify it
the problem is that proxy disconnect in +/- 1 minute

is there is way how to increase or even disable thous disconnect timup`s or
whatever it calls

here is code
##########################

type
TForm3 = class(TForm)
Socket: TWSocket;
Server: TWSocketServer;
Button1: TButton;
CheckBox1: TCheckBox;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Memo2: TMemo;
Memo3: TMemo;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ServerClientConnect(Sender: TObject; Client: TWSocketClient;
Error: Word);
procedure ServerClientDisconnect(Sender: TObject; Client: TWSocketClient;
Error: Word);
procedure ServerDataAvailable(Sender: TObject; ErrCode: Word);
procedure ServerError(Sender: TObject);
procedure SocketDataAvailable(Sender: TObject; ErrCode: Word);
procedure SocketSessionClosed(Sender: TObject; ErrCode: Word);
procedure SocketSessionConnected(Sender: TObject; ErrCode: Word);
procedure SocketSocksError(Sender: TObject; Error: Integer; Msg: string);
procedure Button2Click(Sender: TObject);

private
ClientConnected: Boolean;
ServerConnected: Boolean;
TestLoop:Boolean;
TestLoop2:Boolean;
TestLoop3:Boolean;
TestLoop4:Boolean;
{ Private declarations }
public
LocalClient: TWSocketClient;
recvbuf, sendbuf: TWSocketData;
{ Public declarations }
end;

var
Form3: TForm3;
implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
if Button1.Caption = 'Stop Proxy' then
begin
Server.Close;
Socket.Close;
Button1.Caption:='Start Proxy';
end
else
if Button1.Caption = 'Start Proxy' then
begin
server.Addr:=Edit1.Text;
server.port:=Edit2.Text;
server.Listen;
socket.addr:=Edit3.Text;
socket.port:=Edit4.Text;
Button1.Caption:='Stop Proxy';
End;
End;


procedure TForm3.FormCreate(Sender: TObject);
begin
recvbuf:= AllocMem($FFFF);
sendbuf:= AllocMem($FFFF);

ClientConnected:= False;
end;

procedure TForm3.FormDestroy(Sender: TObject);
begin
FreeMem(recvbuf, $FFFF);
FreeMem(sendbuf, $FFFF);
socket.close;
server.close;
end;

procedure TForm3.ServerClientConnect(Sender: TObject; Client:
TWSocketClient;
Error: Word);
begin
LocalClient:= Client;
LocalClient.OnDataAvailable:= Server.onDataAvailable;
if checkbox1.checked then
Socket.Connect;
memo1.lines.add('Client connected!');
ServerConnected:= True;
end;

procedure TForm3.ServerClientDisconnect(Sender: TObject; Client:
TWSocketClient;
Error: Word);
begin
memo1.lines.add('Client disconnected!');
ServerConnected:= False;

if ClientConnected then
socket.close;
end;

procedure TForm3.ServerDataAvailable(Sender: TObject; ErrCode: Word);
var
Len: Integer;
begin

Len:= LocalClient.Receive(sendbuf, $FFFF);
memo2.lines.add( Format('Read from client %d bytes', [Len]) );

if ClientConnected and (len>0) then
Socket.send(sendbuf, Len);

end;

procedure TForm3.ServerError(Sender: TObject);
begin
memo1.lines.add( Format('Error %d on server socket', [GetLastError]) );
end;


procedure TForm3.SocketDataAvailable(Sender: TObject; ErrCode: Word);
var
Len: Integer;
begin
Socket.FlushTimeout:=0;
Len:= Socket.Receive(recvbuf, $FFFF);

memo3.lines.add( Format('Proxy Read from server %d bytes', [Len]) );

if (len>0) then
LocalClient.send(recvbuf, Len);

end;

procedure TForm3.SocketSessionClosed(Sender: TObject; ErrCode: Word);
begin
memo1.lines.add('Proxy Disconnected from Server!');
ClientConnected:= False;
end;

procedure TForm3.SocketSessionConnected(Sender: TObject; ErrCode: Word);
begin
ClientConnected:= True;
memo1.lines.add('Proxy connected to Server');
end;

procedure TForm3.SocketSocksError(Sender: TObject; Error: Integer; Msg:
string);
begin
memo1.lines.add('aaaaaaaa');
end;
 end.
##########################


Thank you!


Ronaldo
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to