Ich hab ein Netzwerkprojekt. Der Client stellt bestimmte Anfragen, sendet erst nen Text und danach sofort nen Buf. So Wenn ich beim Server nen Haltepunkt einstelle und schrittweise durchgehe, klappts alles problemlos, wenn ich den rausnehme krieg ich ne Class
Exception!
Kann ich delphi irgendwie sagen dass es n paar millisekunden oder so warten soll, damit evtl das DAtenpaket Zeit hat anzukommen?
Ich verzweifle an diesem verdammten Problem schon den ganzen Abend...
Das macht der server beim lesen...
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Info:TInfo;
Zahl:Integer;
begin
IDMSG:=Socket.receivetext;
if ClientReadCount < 1 then
case StrToInt(IDMSG) of
1 :
begin
Socket.ReceiveBuf(Info,SizeOf(Info));
CustomerErstellen(Kaeuferzaehler,Info);
read_customer(Kaeuferzaehler);
Kaeufer:=KSearch(Kaeuferzaehler);
memo2.Lines.add(Kaeufer.get_name);
KDelall;
end;
2: begin
Socket.ReceiveBuf(Info,SizeOf(Info));
Kaeufer:=Customerfinden(StrToInt(Info.name),Kaeuferzaehler); //Name enthält hier einfach nur die KID!
with Info do begin
Name:=Kaeufer.get_name;
Vorname:=Kaeufer.get_vorname;
Adresse:=Kaeufer.get_adresse;
end;
Socket.Sendtext('0201');
Socket.Sendbuf(Info,SizeOf(Info));
end;
end;
inc(ClientreadCount);
end;
Er kriegt von nem Clientprogramm entsprechend einen sendtext um ins richtige Case zu springen, und den Buf mit namen info.
Im Prinzip ist alles untere egal, denn das Ding ist, wenn ich wie gesagt nen Haltpunkt bei der Zeile:
IDMSG:=Socket.receivetext; setze und dann F9 drücke um den Rest durchzurattern geht alles hervorragend... wenn ich den Haltepunkt wegmache krieg ich den Fehler '' ist kein gültiger Integerwert ...