Die Sockets sind absoluter Müll, selbst Borland rät von diesen ab. Sende ich alle 10 Sekunden was funktioniert es wunderbar, lass ich den jetzt 10x die Sekunde was senden, passiert irgendwann einfach nichts mehr.
Delphi-Quellcode:
TChat = record
Nick: String[12];
Text: String[255];
end;
Delphi-Quellcode:
if Socket.ReceiveLength = SizeOf(Chat) then
begin
Socket.ReceiveBuf(Chat, SizeOf(Chat));
Memo1.Lines.Add(
Chat.Nick + ' sagt: ' +
Chat.Text
);
end;
So empfange ich z.B. Daten. Das währe in den Sockets jetzt bei OnRead drin. Sende ich aber jetzt Daten per Timer also z.B. 10x die Sekunde, passiert irgendwann nichts mehr. Ich bin gerade (testweise) dabei einem Singleplayer Spiel einen Multiplayer zu verpassen. Charaktere spawnen und vom Server bewegen lassen klappt wunderbar, nur laggt das irgendwann wenn nur alle 10 Sekunden die Position der Charaktere abgefragt wird. Daher müsste ich die Positionen immer abfragen... die Sockets kann man da vergessen.