Einzelnen Beitrag anzeigen

Benutzerbild von vsilverlord
vsilverlord

Registriert seit: 7. Jan 2008
Ort: Baden Württemberg- Hohenlohekreis
174 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Dateien schicken über Tserver/Tclient

  Alt 15. Sep 2008, 09:48
Hallo, ich möchte Informationen senden. Das mit receivetext hat schon funktioniert, daber das mit reveivebuf funktioniert nicht.
Ich habe eine einen eigenen Type, der jeweils im Serverprogramm und im clientprogramm deklariert ist:
Delphi-Quellcode:
Type
Taktion=(Texte,Setzen, Drop);
TInformation = record
Aktion: Taktion;
Kommentar: string;
end;
Erstmal will ich nur Textnachrichten senden können, und zwar per Button:
Delphi-Quellcode:
var
information:tinformation;
begin
information.Aktion:=texte;
information.Kommentar:=edit1.text;
clientsocket1.Socket.SendBuf(information,sizeof(information))
end
im server wird dann gelesen und an alle geschickt:
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
  var
    i: Integer;
    information:tinformation;
begin
  // Nachricht lesen
  socket.ReceiveBuf(Information,sizeof(information));
  if Information.Aktion=Texte then
  begin
  Log.Lines.Add(Information.Kommentar); // Nachricht lokal ausgeben
  // und an alle verbundenen Clients senden
  for i := 0 to ServerSocket1.Socket.ActiveConnections-1 do
  begin
    serversocket1.Socket.Connections[i].SendBuf(Information,sizeof(information))
  end
   end
end;
im client wiederum wird das dann wieder ausgegeben:
Delphi-Quellcode:
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
information:Tinformation;
begin
  socket.ReceiveBuf(information,SizeOf(information));
  if information.Aktion=texte then
  log.Lines.Add(information.Kommentar)
end;
Nur leider kommt ein grober böser hässlicher Fehler, und zwar in der Server.exe
Theoretisch könnte ich die Informationen auch über sendtext machen, aber da ich da nur strings senden kann, ist das ziemlich quälend.
Volker
~beware
Wizards First Rule:
People are stupid; given proper motivation, almost anyone will believe almost anything. Because people are stupid, they will believe a lie because they want to believe it’s true, or because they are afraid it might be true
  Mit Zitat antworten Zitat