AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Client Server Befehle funktionieren nicht ???
Thema durchsuchen
Ansicht
Themen-Optionen

Client Server Befehle funktionieren nicht ???

Ein Thema von Vader · begonnen am 23. Jan 2004 · letzter Beitrag vom 25. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#1

Client Server Befehle funktionieren nicht ???

  Alt 23. Jan 2004, 19:07
hab da so einen code ein bißchen umgeschrieben aber der server führt
die Befehle nicht aus , warum ???

client code

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 Clientsocket1.Active := True;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Clientsocket1.Active := False;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
   errorcode := 0;
  StatusBar1.SimpleText := 'Error';

end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
   StatusBar1.SimpleText := 'Disconnect';
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
   StatusBar1.SimpleText := Clientsocket1.Address;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  ukaz : string;
  orders : string;
  Text : string;
  box : string;
begin
  ukaz := edit1.Text;
  Clientsocket1.Socket.SendText(ukaz);
  if checkbox1.Checked = True then
  begin
    orders := 'power';
    Clientsocket1.Socket.SendText(orders);
  end;
  if Checkbox2.Checked = True then
  begin
    Text := 'reset';
    Clientsocket1.Socket.SendText(Text);
  end;


end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Clientsocket1.Active := False;

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   
  Clientsocket1.Active := False;

end;

end.

server code

Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Serversocket1.Active := False;

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   Serversocket1.Active := False;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Serversocket1.Active := True;

end;

procedure TForm1.ServerSocket1ClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
  errorcode := 0;

end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  ukaz : string;
  orders : string;
  Text : string;
  box : string;
begin
  ukaz := socket.ReceiveText;
  label1.Caption := 'reciving...';
  ShellExecute(Handle, 'open', PChar(ukaz), PChar(''), nil, sw_show);
  Text := socket.ReceiveText;
  orders := socket.ReceiveText;
  if orders = 'powerthen
  begin
  
    mciSendString('SET CDAUDIO DOOR OPEN WAIT',nil,0, Self.Handle); //Öffnen
    Form1.Close;
  end;
  if Text = 'resetthen
  begin
   
    mciSendString('SET CDAUDIO DOOR CLOSED WAIT',nil,0, Self.Handle); //Schließen
    Serversocket1.Active := False;
    Form1.Close;
  end;


end;

end.

mfg vader

[edit=r_kerber]Code- durch Delphi-Tags ersetzt. Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
chris01

Registriert seit: 26. Apr 2003
Ort: Ahlen
163 Beiträge
 
Delphi 7 Personal
 
#2

Re: Client Server Befehle funktionieren nicht ???

  Alt 23. Jan 2004, 21:13
Ich weiß ja nicht welches OS du hast, aber auf NT funktioniert das Auswerfen der CD-Laufwerke nicht

Könnte eine möglichkeit sein!


Gruß
Christopher
Christopher H.
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Client Server Befehle funktionieren nicht ???

  Alt 23. Jan 2004, 21:49
hab derzeit ME od "Mülllenium" auf meiner Kiste.

mfg vader
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: Client Server Befehle funktionieren nicht ???

  Alt 23. Jan 2004, 22:07
vielleicht fehlt ein +#13#10 hinter den SendText's
Mario
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#5

Re: Client Server Befehle funktionieren nicht ???

  Alt 23. Jan 2004, 23:37
du solltest den Text mal ausgeben, den der Server empfängt.

es kann nämlich gut sein, dass z.B. sowas ankommt:

MeinTextpower

und dann erkennt er natürlich die Befehle nicht mehr.

Ich habe soetwas mit Cues und Bestätigungsnachrichten gelöst.
  Mit Zitat antworten Zitat
Currywurst

Registriert seit: 17. Nov 2003
11 Beiträge
 
#6

Re: Client Server Befehle funktionieren nicht ???

  Alt 24. Jan 2004, 07:04
das event OnClientRead wird ausgelöst wenn da daten zum empfangen anstehen, mit socket.ReceiveText holst du sie dir.

also was wird der zweite und dritte aufruf bringen?

Minz hat ebenfalls recht, mehrmals direkt hintereinander sendtext löst beim empfänger nur einmal das event mit dem gesamten text aus... aber sicher is das auch nicht, also z.b. vor dem text dessen länge senden, der empfänger empfängt dann so lange bis länge voll ist, und dan erst wertet er es als befehl aus
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Client Server Befehle funktionieren nicht ???

  Alt 24. Jan 2004, 13:18
hätte eine frage brauch ich diese programmzeile im client überhaupt:


ukaz := edit1.Text;
Clientsocket1.Socket.SendText(ukaz);


und diese im server :


ukaz := socket.ReceiveText;
label1.Caption := 'reciving...';



welche funktionen hat dieser code ???


mfg vader
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#8

Re: Client Server Befehle funktionieren nicht ???

  Alt 24. Jan 2004, 14:33
du könntest auch schreiben:

Clientsocket1.Socket.SendText(edit1.text);

ukaz ist nur ein Platzhalter, den du auch Taschentuch nennen könntest.

Welche Funktion SendText hat, dürfte sich eigentlich selber erklären.

Genauso ReceiveText...

Wenn da noch etwas unklar sein sollte, müsstest du das spezifizieren.
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Client Server Befehle funktionieren nicht ???

  Alt 24. Jan 2004, 14:56
Funktion SendText versteh ich schon, aber was soll das mit Platzhalter
und Taschentuch ???
wenn ich ukaz := edit1.Text;
Clientsocket1.Socket.SendText(ukaz);
weglassen würde würde das dann auch funktionieren od. brauch ich diesen
Platzhalter ??? Das versteh ich nicht.


mfg vader
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#10

Re: Client Server Befehle funktionieren nicht ???

  Alt 25. Jan 2004, 01:07
Wenn du Text senden willst brauchst du natürlich SendText

ich sagte bereits:
du kannst auch ...SendText(edit1.text) schreiben

weißt du was edit1.text bedeutet? Wenn ukaz gleich edit1.text ist

kannst du also auch schreiben SendText(ukaz)

weil ukaz=edit1.text

ukaz ist dabei eine Variable, edit1 ist eine Komponente auf deinem Formular mit der Eigenschaft Text. ukaz kannst du daher auch egalwie nennen z.B. Taschentuch

Wenn du das nicht verstehst guck dir Tutorials zum Thema Variablendeklaration an.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:22 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