Ich hatte vorher auch schon mal eine Variante, die so aussah:
Client:
Delphi-Quellcode:
procedure TFormMain.NetzwerkClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var Answer:TNetAnswer;
begin
if Socket.ReceiveLength<sizeof(Answer) then
Exit;
Socket.ReceiveBuf(Answer,sizeof(Answer));
...
Server:
Delphi-Quellcode:
procedure TFormMain.NetzwerkServerClientWrite(Sender: TObject;
Socket: TCustomWinSocket);
var Request:TNetRequest;
Answer:TNetAnswer;
begin
if Socket.ReceiveLength<sizeof(Request) then
Exit;
Socket.ReceiveBuf(Request,sizeof(Request));
...
end;
Das hat aber auch nichts geändert. Außerdem habe ich beim Debuggen nachgeschaut und die ReceiveLength ist genau die erwartete Länge - es hat also nichts mit meinem Problem zu tun (wobei mir durchaus klar ist, dass das noch sauber gelöst werden muss).