Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Der Server führt nur " einen Befehl" aus ?? (https://www.delphipraxis.net/15587-der-server-fuehrt-nur-einen-befehl-aus.html)

Vader 31. Jan 2004 21:50


Der Server führt nur " einen Befehl" aus ??
 
hallo,
hab da einen code, der server sollte zwei befehle ausführen,
zb. wenn in d. variable orders: öffnen abgelegt wird, soll er
das cdfach öffnen, wenn er in d. variable text: schließen abgelegt wird, soll er das cdfach schließen.
tut er aber nicht, wenn ich nur eine variable und einen
befehl benutze funktioniert es.

kann sein das beim zweiten aufruf des befehls dann alle beide
variableninhalte wie, öffnenschließen steht ????

wie müßte ich diesen code umschreiben.

Code:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var

  orders : string;
  Text : string;

begin

    orders := socket.ReceiveText;
    Text := socket.ReceiveText;

  if orders = 'öffnen' then

  begin

   
    mciSendString('SET CDAUDIO DOOR OPEN WAIT',nil,0, Self.Handle); //Öffnen

  end;


  if Text = 'schließen' then
 
  begin
   
   mciSendString('SET CDAUDIO DOOR CLOSED WAIT',nil,0, Self.Handle); //Schließen
   
  end;


end;

mfg vader

hboy 31. Jan 2004 22:05

Re: Der Server führt nur " einen Befehl" aus ??
 
wenn du Receivetext ausführst ist der Befehl ja gelesen und der eingangspuffer leer. beim 2. mal lesen in "text" wird kein Wert mehr gelesen.

warum überhaupt 2 Variablen ?

hboy 31. Jan 2004 22:06

Re: Der Server führt nur " einen Befehl" aus ??
 
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  order : string;

begin

  order := socket.ReceiveText;

  if order = 'öffnen' then
  begin
    mciSendString('SET CDAUDIO DOOR OPEN WAIT',nil,0, Self.Handle); //Öffnen
  end;

  if order = 'schließen' then
  begin
   mciSendString('SET CDAUDIO DOOR CLOSED WAIT',nil,0, Self.Handle); //Schließen
  end;

end;
Edit: ops

sakura 31. Jan 2004 22:10

Re: Der Server führt nur " einen Befehl" aus ??
 
@Vader: ich habe die zweite und die dritte Kopie dieses Threads mal gelöscht ;-)

Vader 1. Feb 2004 07:53

Re: Der Server führt nur " einen Befehl" aus ??
 
aber wie muß ich dann den Client schreiben,wenn ich nur eine
Variable nehme funktioniert es nicht.

Code:
procedure TForm1.AusführenClick(Sender: TObject);
var

  orders : string;
 

begin
 
  if checkbox1.Checked = True then
  begin
    orders := 'öffnen';
    Clientsocket1.Socket.SendText(orders);
  end;

  if Checkbox2.Checked = True then
  begin
   
    orders := 'schließen';
    Clientsocket1.Socket.SendText(Text);
  end;


end;
wenn ich jetzt das Prog. ausführe dann funktoniert der erste Befehl "öffnen", wenn ich dann die 2 Checkbox aktiviere wird nichts ausgeführt.
Was ist in meinen Code falsch ???


mfg Vader

Vader 1. Feb 2004 07:59

Re: Der Server führt nur " einen Befehl" aus ??
 
halt ich hab mich verschrieben,natürlich muß in der Zeile:

Clientsocket1.Socket.SendText(Text);

( orders ) stehen !!

ich habs ausprobiert und es funzt 8)

mfg vader


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 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