marcos49ers
-
Total de itens
4 -
Registro em
-
Última visita
Posts postados por marcos49ers
-
-
Abrindo Threads você não fica mais amarrado no evento onAccept e tb não precisa mais utilizar o evento onClientRead.
Desabilite o evento onClientRead e defina a Thread:
type TSock_Thread = class(TThread) private Socket :TCustomWinSocket; public constructor Create(aSocket:TCustomWinSocket); procedure Execute; override; end;
Na Implementation:constructor TSock_Thread.Create(aSocket:TCustomWinSocket); begin inherited Create(true); // cria suspensa Socket := aSocket; // passa o Socket FreeOnTerminate := true; // libera automaticamente end; procedure TSock_Thread.Execute; var s:String; begin While not Terminated and Socket.Connected do begin if Socket.ReceiveLength > 0 then // evita o evento onClientRead begin s := Socket.ReceiveText; // recebe Socket.SendText(s); // envia end; Sleep(1); // evita a CPU ficar em 100% end; end;
No evento onAccept:procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket); var TST:TSock_Thread; begin TST := TSock_Thread.Create(Socket); // instancia o objeto TST.Resume; // coloca a Thread em execução end;
Notei que você utiliza a propriedade Connections; vale uma dica de que se um Client se desconectar de forma anormal, essa propriedade não é atualizada de imediato.
Deu certo muito obrigado
-
Eu jogo os comandos que eu quero dentro do OnAccept do seversocket, pois os comandos que eu quero estao dentro de OnClientRead, os comandos seguem:
S1 := Socket.ReceiveText;
// Envia dados recebidos de volta
ServerSocket.Socket.Connections[0].SendText(S1);
Como faço pra criar um novo thread para cada nova conexao que entra, pois não sei o numero de clientes que conectarão, posso ter por exemplo 2 cliente conectados ao mesmo tempo e mais 4 conectarem.
-
Tenho um sistema rodando que recebe um texto diferente de cada cliente conectado e preciso reenviar o texto recebido para cada cliente, como faço pra responder cada cliente com sua respectiva resposta, quando tenho mais de um cliente conectado as respostas são enviadas erradas
Delphi - Programa Fecha Sozinho
em Delphi, Kylix
Postado
Tenho um sistema em delphi que recebe conexoes via internet esta rodando no windows 2000 server. as vezes o sistema fecha sozinho. O q pode estar acontecendo?