AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Dateien schicken über Tserver/Tclient
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien schicken über Tserver/Tclient

Ein Thema von vsilverlord · begonnen am 15. Sep 2008 · letzter Beitrag vom 13. Feb 2009
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz