Ver Mensaje Individual
  #1  
Antiguo 21-04-2010
jlsc jlsc is offline
Miembro
 
Registrado: may 2007
Posts: 38
Reputación: 0
jlsc Va por buen camino
Unhappy Problema con Sockets

Hola a todos,

Necesito hacer un programa mediante sockets, la idea es que desde un PC Servidor le envié mensajes a los demás PC Clientes al mismo tiempo. Lo tengo programado de tal manera que cada vez que un PC Cliente se conecte al servidor este almacene la IP del PC Cliente en un Treeview, y cuando se desconecte desaparezca del TreeView hasta aqui todo bien, mando un mensaje a cada PC cliente sin problemas pero cuando hago un bucle para enviar a todos los PC clientes no me funciona solo llegá a uno y luego me da error, me dice no se puede modificar el estado del socket cuando esta activo. Pero como hago cual es la idea? Yo lo tengo programado de la siguiente manera.

procedure TFormMensaje.BitBtn1Click(Sender: TObject);
var
Mensaje, ClientText:String;
NombrePC:String;
k,j: integer;
begin
NombrePC:='';
for k:=0 to (FormServidor.TreeView1.Items.Count - 1) do
begin
ClientText:= FormServidor.TreeView1.items[k].Text;
for j:=1 to 3 do
NombrePC:= NombrePC + ClientText[j];
if (uppercase(NombrePC)='ESH') then {verifico que es un equipo al cual hay que mandarle según su nombre}
begin
FormServidor.ClientSocket1.Host:=ClientText;
FormServidor.ClientSocket1.Port:=21;
FormServidor.ClientSocket1.Active:=True;
if FormServidor.ClientSocket1.Active then
FormServidor.ClientSocket1.Socket.SendText(Memo1.Text + ' : '+ DateToStr(Date) + ' ' + TimetoStr(Time));
Memo1.Clear;
FormMensaje.Close;
end;
NombrePC:='';
enD
end;


Ven el error o cual sería la manera correcta de hacerlo.

Muchas gracias por su valiosa ayuda.

Un saludo

Jorge
Responder Con Cita