envia via Sockets

15/03/2006

Bom pessoal to usando um socket servidor em uma aplicação servidora e em uma aplicacao cliente um socket cliente. tenho varios clientes q conecta nos servidor como fasso pra apelidar um cliente no servidor exemplo se o terminal Dp01 conectar eu vejo o nome dele no servidor, se o Cml01 conectar eu vejo no servidor. pq quero identificar pq e o seguinte um terminal envia uma informação pro servidor q recebe e distribui pra todos q estam conectados com exeção pra aquele q enviou pro servidor então pensei q se eu pudesse apelidar cada terminal eu posso criar um loop pra enviar pra todo mundo mesno por terminal xxx se alguem tiver uma solução similar q resolva isso eu agradeço


Marcal

Respostas

16/03/2006

Paullsoftware

Coloque dois ListBox no seu servidor e faça esse código:
procedure TfServ.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
LbClients.Items.Add(Trim(Socket.RemoteAddress));//ListBox1
LbAcoes.Items.Add(´Cliente:´+Socket.RemoteAddress+´ Conectou!´);//ListBox2
end;


para saber se alguém se desconectou faça o sódigo abaixo:
procedure TfServ.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
  var Procura:Integer;
begin
 Procura := LbClients.Items.IndexOf(Socket.RemoteAddress);
 if Procura >= 0 then
  begin
  LbClients.ItemIndex:=Procura;
  LbClients.DeleteSelected;
  end;
 LbAcoes.Items.Add(´Cliente:´+Socket.RemoteAddress+´ Desconctou!´);
end;

espero ter ajudado, o nome que vc recebe é o nome do micro na rede! :wink:


Responder Citar