AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit ICS i. V. mit einem client/server Programm
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ICS i. V. mit einem client/server Programm

Ein Thema von Blackice · begonnen am 16. Feb 2005
Antwort Antwort
Blackice

Registriert seit: 16. Jan 2005
3 Beiträge
 
#1

Problem mit ICS i. V. mit einem client/server Programm

  Alt 16. Feb 2005, 21:02
Nabend,

ich habe ein Client/Serverprogramm welches ich mit Delphi 3 (schulbedingt, leider ) und den ICS Komponenten entwickle. Der Clientteil sucht dabei per UDP Broadcast nach den verfügbaren Servern im jeweiligen Subnetz. Soweit funktioniert der Broadcast auch. Das Problem besteht auf der Serverseite. Ich verschicke einen spezifisch formatierten String, den der Server interpretiert. Enthält er ein Keyword dann wird eine bestimmte Aktion ausgeführt.

Wenn ich nun den Server starte:

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
  with sesserver do begin
   Proto := 'udp';
   Addr := '0.0.0.0';
   Port := '6001';
   LocalPort := '6001';
   LocalAddr := GetMyIp;
   Listen;
  end;
end;
und dann den Client senden lasse:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  with sesclient do begin
   Proto := 'udp';
   Addr := edit1.text;
   Port := '6001';
   LocalPort := '6001';
   LocalAddr := GetMyIp;
   Connect;
   SendStr(GetMyIp + '_Server?');
   Close;
  end;
end;
passiert beim Server zunächst einmal gar nichts. Wenn ich den oben beschriebenen Button zum Serverstarten erneut betätige, wirft er logischerweise Fehler aus. code dazu:

Delphi-Quellcode:
procedure TForm3.sesserver_Error(Sender: TObject);
begin
 showmessage('error');
end;
Ich kann nun drei Errormeldungen wegdrücken und DANN erhalte ich meinen vom Client abgeschickten String!

Was passiert da? Ich verstehs nicht... Wieso muss ich den Server mehrmals starten und 3 Fehler wegdrücken bevor ich die Meldung erhalte?

Zu den Spezifikationen:

Der Server ist ein TWServerSocket mit:
Multithreaded: True
Port: 6001
Proto: UDP
LocalPort: 6001 (Was soll der eigentlich sein?)
MaxClients: 4
LocalAddr: wird mittels Funktion gesetzt
Addr: 0.0.0.0

Der Client ist ein TWSocket mit:
Port: 6001
Proto: UDP
LocalPort: 6001 (Was soll der eigentlich sein?)
LocalAddr: wird mittels Funktion gesetzt
Addr: 192.168.6.255 (eben die Broadcastadresse)

Achso: Es handelt sich um eine Nur-LAN Anwendung.

Bin für jede Hilfe dankbar!

Gruß
Blackice
There are only 10 types of people in the world, those who understand binary and those who don't.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:57 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