Autor Beitrag
Kink
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 25.07.02 18:34 
Hi,

Ich hab eine Form mit einer TClientSocket und eine 2te mit einer TServerSocket Komponente. Bervor aber der Client "entgültig" zum Server connected möchte ich ein Passwort abfragen lassen. Wie könnte man das am besten machen?
Gibt es eine besser möglichkeit als mit SendText und ReceiveText?
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Do 25.07.02 20:06 
Hi Kink,

meiner Meinung nach kannste das über Serversocket und Clientsocket nur über SendText und ReceiveText machen.

Also, so würde ich das realisieren: Wenn ein Client verbindet, schickst du einen Befehl (z.B.: '#1'). Der Client wertet die empfangenden Daten aus und erkennt dann, dass es sich um den befhel '#1' handelt. Also sendet er ein Passwort, dass der Server dann prüft und, wenn es falsch ist, trennt er die Verbindung. Wenn nicht, bleibt die Verbindung halt bestehen.

Das müsste so funktionieren.

_________________
Viele Grüße
Jakob
Kink Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: So 28.07.02 17:17 
Also ich versteh diesen sche*** nichtmehr.

Ich hab noch eine TServerSocket Komponente dem Server und einen TClientSocket Komponente dem Client hinzugefügt.
Beim Server benutze ich eine OnClientRead prozedur und er läuft auf dem Port 25896.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure Form1.ServerPassClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var pass: string;
begin
pass:= Socket.ReceiveText;
if not (pass= 'test') then
begin
  CloseAll(ServerMain);
  CloseAll(ServerLogger);
  CloseAll(ServerPass);
end;
end;


Wenn ich beim Clienten auf Connect klicke schickt der ein Passwort.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
procedure Form1.Button1Click(Sender: TObject);
begin
  Client.Address:= address.Text;
  Client.Port:= port.Text;
  Client.Open;
end;


ausblenden Quelltext
1:
2:
3:
4:
5:
procedure Form1.ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Socket.SendText(EdtPass.Text);
end;


Beim ersten connect scheint das ganze zu funktionieren aber dann gehts nimma.
Ich blick ned durch.