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.