Pessoal, é o seguinte... Eu estou trabalhando com o componente ClientSocket e Threads, e para cada thread, eu crio uma nova instância de um Socket com o seguinte código:
procedure Threads.Execute;
begin
Application.ProcessMessages;
ClientSocket:= TClientSocket.Create(Application); //criando o socket
ClientSocket.Port:= 81; //setando a porta para conexao
ClientSocket.OnConnect:= OnConnect; //setando evento onconnect
ClientSocket.OnRead:= OnRead; //setando evento onread
ClientSocket.OnDisconnect:= OnDisconnect; //setando evento ondisconnect
ClientSocket.Host:= HLine; //lendo o host de um TXT
end;
Aonde:
ClientSocket é uma variável privada da thread
HLine aonde eu seto o Host, é uma variável que eu pego de uma linha de um TXT com servidores para conexão.
O problema é:
Com esse código eu achei que criava 1 socket por thread, e setava o Host do Socket para a linha atual que estaria lendo o TXT, e isso até funciona em partes... Ele abre as conexões com cada linha lida do TXT, porém num determinado momento, eu preciso fechar a conexão... E abri-la novamente mais tarde, e aí eu notei o seguinte:
A propriedade Host do ClientSocket está sempre ficando com apenas 1 servidor... Ele não tá gravando cada ClientSocket de cada Thread com um Host, ele pega sempre o último o Host e seta como se fosse para todos... Como eu posso fazer para que cada thread tenha seu socket e cada socket tenha seu Host, para que eu possa abrir, fechar, re-abrir conexões, cada socket com seu host?
Question
Dolfin
Pessoal, é o seguinte... Eu estou trabalhando com o componente ClientSocket e Threads, e para cada thread, eu crio uma nova instância de um Socket com o seguinte código:
Aonde:
ClientSocket é uma variável privada da thread
HLine aonde eu seto o Host, é uma variável que eu pego de uma linha de um TXT com servidores para conexão.
O problema é:
Com esse código eu achei que criava 1 socket por thread, e setava o Host do Socket para a linha atual que estaria lendo o TXT, e isso até funciona em partes... Ele abre as conexões com cada linha lida do TXT, porém num determinado momento, eu preciso fechar a conexão... E abri-la novamente mais tarde, e aí eu notei o seguinte:
A propriedade Host do ClientSocket está sempre ficando com apenas 1 servidor... Ele não tá gravando cada ClientSocket de cada Thread com um Host, ele pega sempre o último o Host e seta como se fosse para todos... Como eu posso fazer para que cada thread tenha seu socket e cada socket tenha seu Host, para que eu possa abrir, fechar, re-abrir conexões, cada socket com seu host?
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.