elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
21 Mayo 2012, 12:14  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderadores: Karcrack, [Zero])
| | |-+  [Ayuda] Conexión inversa en delphi?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Conexión inversa en delphi?  (Leído 1,457 veces)
*Ghost*

Desconectado Desconectado

Mensajes: 22



Ver Perfil WWW
[Ayuda] Conexión inversa en delphi?
« en: 25 Noviembre 2009, 00:55 »

Ya me siento mal posteando esto en mas de 1 foro :/  :¬¬  :xD
En fín... estoy tratando de entender la conexión inversa en Delphi pero no me dá, cuando por ejemplo intento envíar un mensaje me salta error, aunque "supuestamente"  ya conecta pero parece como si algo hiciera conflicto ya que siempre me lo desconecta y me salta error.

Código Completo del cliente

Código
unit Unit1;
 
interface
 
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, XPMan, ScktComp;
 
type
 TForm1 = class(TForm)
   ServerSocket1: TServerSocket;
   Label1: TLabel;
   Edit1: TEdit;
   XPManifest1: TXPManifest;
   Button1: TButton;
   Button2: TButton;
   Label2: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure ServerSocket1ClientConnect(Sender: TObject;
     Socket: TCustomWinSocket);
   procedure ServerSocket1ClientError(Sender: TObject;
     Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
     var ErrorCode: Integer);
   procedure ServerSocket1ClientDisconnect(Sender: TObject;
     Socket: TCustomWinSocket);
   procedure ServerSocket1ClientRead(Sender: TObject;
     Socket: TCustomWinSocket);
   procedure Button2Click(Sender: TObject);
   procedure ServerSocket1Listen(Sender: TObject;
     Socket: TCustomWinSocket);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Port:= 1234;
ServerSocket1.Active:= True;
end;
 
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Label2.Caption:= 'Estado: Conectado';
end;
 
procedure TForm1.ServerSocket1ClientError(Sender: TObject;
 Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
 var ErrorCode: Integer);
begin
Label2.Caption:= 'Estado: Error';
end;
 
procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Label2.Caption:= 'Estado: Desconectado';
end;
 
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
 Socket: TCustomWinSocket);
begin
If Socket.ReceiveText = 'saludo' Then
ShowMessage('Te han saludado desde el servidor con una conexión inversa');
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Socket.SendText('saludo');
end;
 
procedure TForm1.ServerSocket1Listen(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Label2.Caption:= 'Estado: Escuchando...';
end;
 
end.

Código completo del servidor

Código
unit Unit1;
 
interface
 
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ScktComp;
 
type
 TForm1 = class(TForm)
   ClientSocket1: TClientSocket;
   Label1: TLabel;
   Button1: TButton;
   procedure ClientSocket1Connect(Sender: TObject;
     Socket: TCustomWinSocket);
   procedure ClientSocket1Disconnect(Sender: TObject;
     Socket: TCustomWinSocket);
   procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
     ErrorEvent: TErrorEvent; var ErrorCode: Integer);
   procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
 
   procedure ClientSocket1Connecting(Sender: TObject;
     Socket: TCustomWinSocket);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.ClientSocket1Connect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Label1.Caption:= 'Estado: Conectado';
end;
 
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Label1.Caption:= 'Estado: Desconectado';
end;
 
procedure TForm1.ClientSocket1Error(Sender: TObject;
 Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
 var ErrorCode: Integer);
begin
ErrorCode:= 0;
Label1.Caption:= 'Estado: Error';
end;
 
procedure TForm1.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
begin
If Socket.ReceiveText = 'saludo' Then
ClientSocket1.Socket.SendText('saludo');
end;
 
 
 
 
procedure TForm1.ClientSocket1Connecting(Sender: TObject;
 Socket: TCustomWinSocket);
begin
Label1.Caption:= 'Estado: Conectando';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host:= '127.0.0.1';
ClientSocket1.Port:= 1234;
ClientSocket1.Active:= True;
end;
 
end.

A ver si me pueden ayudar y encontrar el error en el código  ;D
Muchas gracias.
Ghost.
En línea

Jaixon Jax


Desconectado Desconectado

Mensajes: 855



Ver Perfil
Re: [Ayuda] Conexión inversa en delphi?
« Respuesta #1 en: 25 Noviembre 2009, 02:48 »

Bueno yo no he utilizado ese tipo de sockets mas bien he usado las Indy la pregunta es cuando das Button1Click en el cliente al cambiar la propiedad active se conecta ?  :-\ creo que no debe existir un procedimiento Connect sino sera cuestion del firewall         





En línea

Tricalogo del buen forista:
  1.- No postear en hilos de Politica, ni religion, ni feminismo ni Machismo .....
  2.- Nunca solicitar ayuda por MP a alguien del staf .... ellos nunca responden ....
  3.- Aplaudir todos los "aportes" del staf aunque no los entiendas, o creas que no tienen importancia eso es buena onda ....
*Ghost*

Desconectado Desconectado

Mensajes: 22



Ver Perfil WWW
Re: [Ayuda] Conexión inversa en delphi?
« Respuesta #2 en: 25 Noviembre 2009, 03:01 »

¡Claro! al dar clic en Button1 se conecta...
Sigo esperando ayuda gracias  ;D
En línea

prat

Desconectado Desconectado

Mensajes: 54


PrAt


Ver Perfil
Re: [Ayuda] Conexión inversa en delphi?
« Respuesta #3 en: 21 Diciembre 2009, 23:51 »

Lo mire un poco por alto...y creo que en el cliente:

Código:
procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Socket.SendText('saludo');
end;


deberia ir algo parecido a esto (no se si esta bien escrito al 100%):

Código:
procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Socket.conections[0].SendText('saludo');
end;

A un cliente se le pueden conectar varios servers. De ahi que tengas q decirle a que server (alias a que conection) le estas mandando texto.
En línea

Nota mental: Crearme una firma. >.<
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines