Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2011
martonbarbosa martonbarbosa is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 15
Poder: 0
martonbarbosa Va por buen camino
obtener datos mediante ServerSocket

Hola a todos... la verdad estuve leyendo varios codigos sobre delphi en este foro, y a demas de ayudarme bastante con mi proyecto ESTA BUENISIMO!

Acudo a ustedes, porque tengo un problemita que me gustaria resolver.

Estoy haciendo un chat privado que consiste en un Servidor que admite varias conexiones y su cliente respectivo...
El chat funciona de maravilla, el servidor admite todas las conecciones que yo desee y todo. pero me gustaria que mi servidor reciba a demas de la IP del cliente reciba otros datos.

Detallo evento donde el servidor agrega todas las conexiones a un listBox.

Código Delphi [-]
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
 x : integer;
begin
TrayIcon1.Tip := 'Servidor de : ' + obtenerUsuarioRed + #13 + #10 + 'Estado: Conectado';
Label1.Caption:= 'Estado Conexion: Conectado'; // en un label, muestra estado de conexion
 with listbox1.Items do
  begin
   Clear; //Primero limpia el listbox, para que cuando un usuario se desconecte se borre.
   for X  := 0 to serversocket1.Socket.ActiveConnections -1 do
    begin
     Add(ServerSocket1.Socket.Connections[x].RemoteAddress); // agrega conexiones activas
    end
  end;
sndplaysound('C:\Windows\Media\chimes.wav', SND_NODEFAULT Or SND_ASYNC); //ejecuta un sonido propio de windows (XP).
end;

Veremos, que a demas de todo, tiene un icono donde se agrega el estado, ejecuta un sonido cuando un cliente se conecta, y en el listbox me agrega la ip de la conexion, y como es multiconexion, me gustaria que ahi me agregue el nombre de la persona que se conecta, yo tengo una funcion que encontre por ahi que obtiene el NOMBRE de usuario de la pc. y me gustaria que en ese listbox aparesca dicho nombre de usuario.

Se les ocurre alguna idea de como mediante los sockets mande diche informacion?

Yo probe asi:
Cuando el cliente se conecta, que mande un mensaje con el comando :
Código Delphi [-]
ClientSocket1.Socket.SendText('texto'); //'texto' iria funcion de obtener usuario...

Pero al conectarce otros usuarios, el nombre de usuario no me lo agrega al listbox, sino al memo, que es donde recibo los mensajes...

Ahora, si solo se conecta uno, si el listbox recibe el nombre de usuario...

De paso, les adjunto la funcion para obtener el nombre de usuario de windows por si alguien lo quiere.

Código Delphi [-]
function obtenerUsuarioRed : Ansistring;
var
  dwI : DWord;
begin
  dwI := MAX_PATH;
  SetLength (Result, dwI + 1);
  if WNetGetUser (Nil, PChar (Result), dwI) = NO_ERROR then
    SetLength (Result, StrLen (PChar (Result)))
  else
    SetLength (Result, 0)
end;

la llamamos asi:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
//ejemplo, lo ponemos en un label
label1.caption := obtenerUsuarioRed;
end;

alguna idea?


Desde ya muchisimas gracias!

M@rton

Última edición por martonbarbosa fecha: 22-06-2011 a las 16:38:19.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener código HTML mediante el componente webbrowser radge Internet 3 25-05-2023 22:21:27
obtener campo de varios obtenidos de sql mediante un cursor jesusvp SQL 5 16-07-2007 20:35:57
Modificación de Datos mediante Consultas.. anghell77 SQL 3 19-09-2006 03:29:39
Como obtener mediante delphi el nombre o la ip de una pc carlos gonzalez Varios 2 06-12-2005 01:27:06
Introduccion datos en IB mediante DBedit tomasgarcia Firebird e Interbase 2 09-07-2004 17:46:08


La franja horaria es GMT +2. Ahora son las 09:45:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi