Esta função está utilizando o metodo Lock() e Unlock() porque está dentro de uma thread (Assincrona). Esta função está sendo chamada varias vezes por segundo.
Quando desconecto pelo cliente, o programa servidor trava. Notei que varias vezes que ele trava, é que a desconecção aconteceu entre o for e o SendBuff. Só que estas funções no builder são atomicas, não sei como fazer para consertar isso.
Pergunta
Guest AnaBh
Pessoal,
No C++ Builder, eu criei um ServerSocket utilizando o objeto padrão TServerSocket do mesmo.
Dentro de uma Thread eu coloquei o seguinte codigo:
void SendBuffToClientsTcp(BYTE *Buff, int Tam)
{
int i;
Form->ServerSocket1->Socket->Lock();
for(i=0;i<Form->ServerSocket1->Socket->ActiveConnections;i++)
{
Form->ServerSocket1->Socket->Connections->SendBuf(Buff, Tam);
}
Form->ServerSocket1->Socket->Unlock();
}
Esta função está utilizando o metodo Lock() e Unlock() porque está dentro de uma thread (Assincrona). Esta função está sendo chamada varias vezes por segundo.
Quando desconecto pelo cliente, o programa servidor trava. Notei que varias vezes que ele trava, é que a desconecção aconteceu entre o for e o SendBuff. Só que estas funções no builder são atomicas, não sei como fazer para consertar isso.
Se algum puder me ajudar, ficarei muito grata.
Valeu
Ana
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.