Thema: Delphi Indy TCP Problem.

Einzelnen Beitrag anzeigen

danu1104

Registriert seit: 4. Dez 2006
75 Beiträge
 
Delphi 2006 Personal
 
#10

Re: Indy TCP Problem.

  Alt 31. Mär 2009, 06:08
Ich habe 3 CLients und 3 Server, on timer event gibt es nur einen Coordinaten austauch und chat messages zu entfangen, aber beide haben erschiedene Server. Es gibt einen DB Server der nur informationen speichert das heisst Stats , Exp, Name, Login. Der message Server Empfängt messages und leitet sie global weiter, so das sie jeder lesen kann, das konnte ich fixen. bei stats verteillung Liest und Schreibt er gleichzeitig.

Aber deine ahnung trifft zu, bei einen Klick des STR Buttons Werden mehrere informationen Gesendet und angefordert

Delphi-Quellcode:

procedure TForm1.PlusStrButtonClick(Sender: TObject);
Var SRvVal,SrvSP,Value,Pnt:Integer;
begin
if StrToint(MUSPnt.Caption) < 1 then Exit;
SRvVal:=GetInfo('STR'); // Anfordern
Value:=SRvVal+1;
try
ModiFyInfo('STR',Value); // setzen
finally
ATSTR.Caption:=IntToStr(GetInfo('STR')); // Anfordern
SRvSP:=GetInfo('APNTS'); // Anfordern
Pnt:= SRvSP -1;
try
  ModiFyInfo('APNTS',Pnt);// setzen
finally
  MUSPnt.Caption:=IntToStr(GetInfo('APNTS')); // Anfordern
end;
end;

globerg:=GetInfo('STR')*6; // Anfordern
globatk:=GetInfo('STR')*7; // Anfordern
globdmg:=RandomRange(globerg,globatk)-globdef;
ATKRATE.Caption:='Attack Rate: '+slinebreak+' '+IntToStr(GetInfo('STR')*6)+' ~ '+IntToStr(GetInfo('STR')*7) // Anfordern
end;

Ich werde mal schaun ob ich das einwenig verringern kann.

Beim chat habe ich das "Einfrieren" rausbekommen, der client hat sich einfach imma aufgehangen nach absenden der message, und es lag an try ... abfrage.

Aber wie soll ich ein MMOG baun, wenn der Server nach "1" client schon überfordert ist ist konsolen anwendung dafür besser?
Daniel
  Mit Zitat antworten Zitat