Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   ClientSocket y ServerSocket (https://www.clubdelphi.com/foros/showthread.php?t=54752)

ZayDun 29-03-2008 00:53:56

ClientSocket y ServerSocket
 
Hola amigos, estoy haciendo un chat en delphi6 utilizando client y server socket.., el problema que encuentro es a la hora de hacer un privado con algun usuario. ya que si lo utilizo asi..

Servidor.Socket.Connections[0].SendText(Edit1.Text);

me envia el privado al primer cliente que se conecto, como puedo saber el id de conexion que tiene actualmente un cliente. si vale de algo junto a los datos que recibo me llegan su ip y su nick, por si puedo utilizar de alguna manera para identificarlos. :S

TROMPO 31-03-2008 19:56:34

Cita:

Empezado por ZayDun (Mensaje 276124)
Hola amigos, estoy haciendo un chat en delphi6 utilizando client y server socket.., el problema que encuentro es a la hora de hacer un privado con algun usuario. ya que si lo utilizo asi..

Servidor.Socket.Connections[0].SendText(Edit1.Text);

me envia el privado al primer cliente que se conecto, como puedo saber el id de conexion que tiene actualmente un cliente. si vale de algo junto a los datos que recibo me llegan su ip y su nick, por si puedo utilizar de alguna manera para identificarlos. :S

pues no se mucho al respecto.. pero en la pagina de indy hay un ejemplo de chat... sino mal recuerdo...

cada vez ke un cliente se conecta a tu server este "crea" una conexion (connections[x]) el cual usa para comunicarse con los clientes..

tons lo ke supongo ke deberias de hacer es una "tabla" en el cual "captures" el "numero de conexion" y un "alias" para ke puedas identificar al cliente.. y poder elegir "el num. de conexion" segun el "alias".

no se si se entendio... pero espero haberte dado al menos una idea :)


mas o menos... si kisieras hacer un Broadcast (mensaje a todos) los clientes.. seria algo asi

Código:

for x:=0 to Servidor.Socket.ActiveConnections-1 do
    Servidor.Socket.Connections[x].SendText('Hola');

espero no ekivocarme :) (recien tengo 1 semana leyendo delphi)
saludos

maxinitto 20-06-2011 14:38:57

Por cada conexion que llegue al chat si es multiconexion almacena cada conexion en un elemento de un array, osea almacena el nº de handle de tal manera que cuando tu vayas a interactuar con esa persona en concreto compare los handles de todas las conexioens activas recorriendo con un bucle el socket y cnd lo encuentre y uses la propiedad sendtext le envie el mensaje al socket que contenga el handle deseado y no lo envie a otra.

pd: me he explicado a lo rapido tenia prisa, si no lo comprendes avisa y te ayudo mejor.


La franja horaria es GMT +2. Ahora son las 10:17:53.

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