Einzelnen Beitrag anzeigen

easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#1

TServerSocket - ClientRead kommt nur einmal

  Alt 6. Mai 2008, 14:46
Moin, moin,

ich möchte zwischen dem Server und dem Client Daten austauschen. Dazu benutze ich TServerSocket und TClientSocket:
- Client sendet meine eigene Datenstruktur TNetRequest
- Server liest diese aus und antwortet mit der Struktur TNetAnswer
- wenn der Client dann die Antwort hat, schickt er die nächste Anfrage

Client-Seite - On Read
Delphi-Quellcode:
procedure TFormMain.NetzwerkClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var Answer:TNetAnswer;
begin
  Socket.ReceiveBuf(Answer,sizeof(Answer));
  // die eigentlichen Daten auswerten
  case Answer.RequestId of
      0 :
        begin
          // TBD Antwort weiter verarbeiten
          Inc(Request.RequestId); // Request ist im Client global angelegt
          Socket.SendBuf(Request,sizeof(Request));
        end;
      1 :
        begin
          // TBD Antwort weiter verarbeiten
          Dec(Request.RequestId); // Request ist im Client global angelegt
          Socket.SendBuf(Request,sizeof(Request));
        end;
    end;
Server-Seite - OnClientWrite
Delphi-Quellcode:
procedure TFormMain.NetzwerkServerClientWrite(Sender: TObject;
  Socket: TCustomWinSocket);
var Request:TNetRequest;
    Answer:TNetAnswer;
begin
  Socket.ReceiveBuf(Request,sizeof(Request));
  ExecNetzwerkRequest(Request,Answer); // Antwort aufbereiten
  Socket.SendBuf(Answer,sizeof(Answer));
end;
Mein Problem: die erste Anfrage kommt beim Server an und wird auch beantwortet. Per Debug habe ich auch festgestellt, dass der Client die Antwort vom Server erhält - NUR kommt beim Server die zweite Anfrage nicht mehr an ...

Hat da irgendjemand eine Idee zu? Die Suche hat mir auch nicht wirklich weitergeholfen (was auch daran liegen könnte, dass ich die komplizierteren Threads zu diesem Thema einfach nicht verstanden habe )

easywk
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat