Seguinte estou tendo problemas na recepcao dos dados do servidor, leio os registros no servidor e envio um a um para o cliente que solicitou, mas o cliente as vezes não recebe todos (total 68) os registros do servidor, é aleatorio, as vezes recebe todos e as vezes não, e quando falta registros nem sempre são os mesmo que faltam. Vou mandar o codigo para analizar:
Pergunta
Guest - Uil -
Seguinte estou tendo problemas na recepcao dos dados do servidor, leio os registros no servidor e envio um a um para o cliente que solicitou, mas o cliente as vezes não recebe todos (total 68) os registros do servidor, é aleatorio, as vezes recebe todos e as vezes não, e quando falta registros nem sempre são os mesmo que faltam. Vou mandar o codigo para analizar:
>>>>> Servidor <<<<<<
procedure TFServer.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
Begin
While not xSQL.Eof do
Begin
Mensagem:='00001'+xSQL.FieldByName('NOME').AsString + ';' +
xSQL.FieldByName('EMPRESA').AsString + ';' +
xSQL.FieldByName('CODIGOINTERNO').AsString + ';';
if Socket.Connected then
ServerSocket1.Socket.Connections[0].SendText(Mensagem);
xSQL.Next;
End;
end;
>>>>> Cliente <<<<<
procedure TFPrincipal.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
Var
Posicao : Integer;
Texto : String;
begin
Texto:=ClientSocket1.Socket.ReceiveText;
if Copy(Texto,1,5) = '00008' then
Begin
FMovimento.cdsMvto.Append;
Delete(Texto,1,5);
Posicao:=Pos(';',Texto);
FMovimento.cdsMvtoNOME.AsString:=Copy(Texto,1,Posicao-1);
Delete(Texto,1,Posicao);
Posicao:=Pos(';',Texto);
FMovimento.cdsMvtoEMPRESA.AsString:=Copy(Texto,1,Posicao-1);
Delete(Texto,1,Posicao);
Posicao:=Pos(';',Texto);
FMovimento.cdsMvtoCODIGO.AsString:=Copy(Texto,1,Posicao-1);
FMovimento.cdsMvto.Post;
end;
end
O que esta de errado ai ???? abracos ... espero que me ajundem
Link para o comentário
Compartilhar em outros sites
6 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.