Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#12

Re: Netzwerk-Spiel-Kommunikation

  Alt 30. Jul 2007, 17:29
Zitat von wicht:
Delphi-Quellcode:
procedure TfrmMain.SendActionData(Action: TActionTypes);
var
  M: TActionMessage;
  V, DT: Byte;
begin
  V := PROT_ACTIONDATA;
  M.Action := Byte(Action);

  addSocket.Send(@V, SizeOf(Byte));
  addSocket.Send(@M, SizeOf(TActionMessage));
end;
2 Mal .Send() könnte unter Umständen zu zwei Netzwerkpaketen führen, die einzeln auf die Reise gehen.
Bei UDP ist es sicher so.
Bei TCP sorgt das Betriebssystem jetzt nach Einstellung dafür, dass Daten
die kurz hintereinander der WinSock-API übergeben werden in ein Paket gepackt werden.
Deshalb alles in einem Record enthalten sein:
Delphi-Quellcode:
type
   TActionMessage = record
      MessageType : Word;
      Action : Byte;
      ...
   end;
   ...
   M.MessageType := PROT_ACTIONDATA;
   addSocket.Send(@M, SizeOf(TActionMessage)); // nur 1 "Send" nötig
Andreas
  Mit Zitat antworten Zitat