Fórum Sockets #291269
09/08/2005
0
No servidor utilizei o TServerSocket com as seguinte config:
[list:89c5153534]Port: 7000
o Resto deixei default
[/list:u:89c5153534]
e no cliente utilizei o TClientSocket, com as seguintes confg:
[list:89c5153534]Host: ip do servidor
Port: 7000
o resto deixei o default[/list:u:89c5153534]
agora olha que eu faço:
1º Ativo o server
2º mando o cliente se conectar
3º A Funcao TServerSocket.Socket.activeconections me retorna 1, ou seja correto
4º envio comando para o cliente, e o cliente receber normal
Comando usado para enviar comando para o cliente
for i := 0 to server.Socket.ActiveConnections -1 do begin server.Socket.Connections[i].SendText(mensagem); end;
e pego a mensagem através do envento onread do clientsocket
até aí tudo ok.
mas quando tento enviar algum comando do cliente para o servidor, da erro.
Estou usando o seguinte comando para enviar mensagem para o server
ClientSocke1t.Socket.SendText(Mensagem);
e erro é seguinte:
No cliente da:
[b:89c5153534]Asynchronous socket error 10053[/b:89c5153534]
No server da:
[b:89c5153534]Windows Socket error: Uma solicitação de envio ou recebimento de dados não foi permititda porque o sockete não esta conectado e ( durante o envio de datagrama usando -se uma chamada sendto) não foi fornecido um endereço (10057), omn api, ´recv´[/b:89c5153534]
Sistemald
Curtir tópico
+ 0Posts
09/08/2005
Massuda
Gostei + 0
09/08/2005
Massuda
for i := 0 to server.Socket.ActiveConnections -1 do begin server.Socket.Connections[i].SendText(mensagem); end;
Gostei + 0
10/08/2005
Sistemald
Ainda não descobri, qual linha, ou qual comando, mas ja estou no caminho, pois fiz um sistema bem pequeno, para testar e deu tudo ok.
valeu pela ajuda, qualquer posto aqui.
Gostei + 0
10/08/2005
Sistemald
Durante o evento OnclientRead, eu fazia a chamada a seguinte procedure:
procedure Tfrmprincipal.Imprimir(mensagem: string); var I:integer; begin //imprimir a mensagem for i := 0 to server.Socket.ActiveConnections -1 do begin server.Socket.Connections[i].SendText(mensagem); end; lista.items.Add(mensagem); Lista.ItemEnabled[Lista.Items.Count - 1]:=False; end;
Ou seja durante a leitura da mensagem recebida, e estava tentado enviar uma mensagem para todos os clientes.
Sem a chamada a essa procedure funcionou blz.
Só tem um problema, olha o que eu preciso fazer:
Fazer a leitura da mensagem enviado pelo cliente, até aí ok.
dependendo do texto, o server não faz nada(coloca apenas o texto em uma lista) até aí ok.
Se a mensagem começar com ´imprimir´, ele deve enviar a mensagem para todos os clientes. aí não consigo, ainda.
pois se eu chamas a procedure da erro.
Gostei + 0
10/08/2005
Sistemald
o problema era outro. :oops:
era a seguinte linha:
mensagem:= Server.Socket.ReceiveText;
correto é:
mensagem:= Socket.ReceiveText;
Gostei + 0
10/08/2005
Massuda
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)