Sockets

Delphi

14/05/2007

Boa tarde galera!

Estou desenvolvendo um sistema de vendas, onde tm uma especie de chat interno do sistema, para o envio de recebimento de msg instantaneas entre usuarios conectados. Para isso estou usando TClienteSocket + TServerSocket. A duvida é o seguinte:

Digamos q eu tenha uma lista com os nomes das maquinas conectadas (um listbox)

1) Vamos supor q a Maquina ´estacao1´ manda uma mensagem pro Servidor, escolhendo nesse listbox q a mensagem deve ser repassada somente pra maquina ´estacao4´... entao como faço pra q a mensagem seja enviada somente pra maquina selecionada nesse tal listbox???


Output

Output

Curtidas 0

Respostas

Ipc$

Ipc$

14/05/2007

Utilize o TList Connections da propriedade Socket do TServerSocket.


GOSTEI 0
Output

Output

14/05/2007

Desculpe kra ... mais no meu aki naum tm essa propriedade!
teria como me passar maiores detalhes ?


GOSTEI 0
Ipc$

Ipc$

14/05/2007

ServerSocket1.Socket.Connections[i].SendText(´xxx´);



GOSTEI 0
Output

Output

14/05/2007

ah ta!
ate ai blz!


mais vamos dizer q o ´cliente1´ manda uma mensagem pro ´server´ entregar somente pro ´cliente4´.... como vo saber o ´i´ do cliente 4?????


GOSTEI 0
Ipc$

Ipc$

14/05/2007

Vc pode criar uma classe que contenha o id e o socket de cada cliente.
No evento onAccept vc cria o objeto dessa classe e adiciona num TList.
Quando o server receber a msg p/ enviar, vc varre esse TList até achar o cliente certo e envia pelo socket armazenado.


GOSTEI 0
Output

Output

14/05/2007

puz... kra eu to meio por fora!!!!
teria como vc passa um exemple mais ou menos como fikaria o code?


GOSTEI 0
Ipc$

Ipc$

14/05/2007

Como vc está alimentando esse ListBox ?


GOSTEI 0
Output

Output

14/05/2007

Kra ainda naum to alimentando o listbox ...
mais axo q o correto seria o servidor mandar uma lista com o nome + outras inf nescessarias das maquinas conectados ...

aguardo sua ajuda!


GOSTEI 0
Ipc$

Ipc$

14/05/2007

Armazena os clients pelo Socket.RemoteAddress no evento onAccept, aí ele retorna o IP de cada um.


GOSTEI 0
POSTAR