Autor Beitrag
Petros
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131
Erhaltene Danke: 1


Delphi7, Delphi RadStudio 10 Berlin, VSC# 2015, Java 8
BeitragVerfasst: Do 24.05.12 17:40 
Hallo Delphi freunde!

Ich habe für ein projeckt von mir einen kleinen chat programiert "mit serversocket und clientsocket".
Soweit funktioniert alles nur kann ich im moment nur ein festgelegtes pw benutzen. Jetzt will ich aber das ich eine liste wo Benutzername und passwort gespeichert werden gerne würde ich dazu Memo oder Richtext oder evtl auch ne listbox komponeten benutze wo die daten gespeicht sind

Server

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var i:integer;
passwort,SendText :AnsiString;
begin
passwort:= Socket.ReceiveText;
  If passwort[1] = #11 then 
  begin
  Delete(Nachricht,1,1); 
  If passwort = 'Passwort' then //aulesen von listbox oder Memo 
  begin
     SendText := #12//Richtig
  end
  else
  begin
  SendText := #13//Falsch
  end;
end;


Client
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var Text : AnsiString;
    SendT : AnsiString;
begin
Text := Socket.ReceiveText;
  If Text[1] = #11 then 
  begin
    SendT := #11 + passwort.text; 
    Socket.SendText(SendT);
  end;
Text := Socket.ReceiveText; 
  If Text[1] = #12 then 
  begin
  Form2.Show;
  end
  else
  If Text[1] = #13 then
  begin
   Application.Terminate;
  end;
end;


Nun weiß ich leider nicht wie mann es ausliest zumindest das auslesen wäre kein problem nur wie bekomme ich es hin das er jede zeile einzeln testet und schaut ob das richtige PW mit dabei ist.

MFG Petros


Moderiert von user profile iconNarses: Topic aus Dateizugriff verschoben am Do 24.05.2012 um 19:40
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 24.05.12 19:46 
Moin!

user profile iconPetros hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe für ein projeckt von mir einen kleinen chat programiert "mit serversocket und clientsocket".
Soweit funktioniert alles
Du hast mindestens zwei Probleme:
a) Du gehst davon aus, dass die Datenpakete so ankommen, wie du sie sendest. Das ist allgemein aber ein Fehler, hier steht, warum das so ist. :les: :idea:
b) Du brauchst ein Protokoll, um die unterschiedlichen Daten auseinanderhalten zu können. Hier wird sowas erklärt.

Für die Userliste mit Passwort würde ich dir als simplen Ansatz ein Array of record empfehlen, in dem record kannst du dann Username und Passwort ablegen. Wenn du es besser machen möchtest, dann kannst du auch eine TObjectList nehmen und die User als Objekte dort ablegen.
Von dem Ansatz mit dem Memo oder anderen visuellen Komponenten würde ich dir dringend abraten! :|

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Petros Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131
Erhaltene Danke: 1


Delphi7, Delphi RadStudio 10 Berlin, VSC# 2015, Java 8
BeitragVerfasst: Do 24.05.12 20:43 
Danke Narses stimmt mit a) und b) naja ich habs im moment nur local getestet mit nem kleines hallo aber als ich mir das grad mal richtig durchgelesen habe macht das auf jedenfall sinn. werde den gesamten chat umschreiben ist ja ein super TUT was du dazu gemacht hast.

zum Arry of record sind die werte ja vorbestimmt wenn neue user dazu kommen müsste ich ja den server sozusagen jedesmal umschreiben bzw erweitern um 1 arry also werde ich wohl TObjectList verwenden..

//Edit Arry of record hab ich etwas falsch verstanden gehabt hab nen beitrag bei google gefunden delphi-lernen.de/de/...php?mid=107&vr=1 damit gehts

jetzt meine andere frage wie lass ich den server die werte überprüfen und an den clienten zurück senden das, dass PW zum benutzer gehöhrt... und er auch die verbindung zulässt
IhopeonlyReader
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Do 24.05.12 21:29 
Das ganze habe ich schOn umgesetzt. Ich benutze dazu eine eigene Prozedur etc. Am Anfang muss man pw. Und Namen in edits eingeben, diese werden dann mit !n nickname !p passwort versendet und der Server erkennt das erste Zeichen + das zweite Zeichen ergibt !n es wird somit die anmelde Procedure eingeleitet. Dann wird der nickname ausgelesen und abgeglichen ob er in der Datei vorhanden ist. Wenn ja dann wird das passwort mit dem text in der nächsten Zeile abgeglichen. Wenn es gleich ist, dann wird !ok nickname oder !no Nickname zurückgeschickt. Der Client erkennt das und verbindet entweder oder macht das chatfenster gar nicht erst sichtbar bei Interesse an meiner Methode Schick mit eine pn dann Schick ich dir den quelltext

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 24.05.12 21:30 
Moin!

user profile iconPetros hat folgendes geschrieben Zum zitierten Posting springen:
jetzt meine andere frage wie lass ich den server die werte überprüfen und an den clienten zurück senden das, dass PW zum benutzer gehöhrt... und er auch die verbindung zulässt
Wie schon gesagt, dafür brauchst du ein Protokoll. Wenn du direkt nach dem Login eines Benutzers den Namen und das Passwort sendest, kannst du im Server prüfen und ggfs. die Verbindung wieder beenden. Das läuft vom Konzept her so ab, wie bei der Versionsüberprüfung in meinem Tutorial. :idea:

cu
Narses

//EDIT:
user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
Wenn es gleich ist, dann wird !ok nickname oder !no Nickname zurückgeschickt. Der Client erkennt das und verbindet entweder oder macht das chatfenster gar nicht erst sichtbar
Das halte ich aber für einen groben Fehler im Sicherheitskonzept, wenn der Client entscheiden darf, ob er die Verbindung trennt oder nicht. :| Wenn schon Sicherheit, dann richtig, und dann gehört das in den Server.

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
bei Interesse an meiner Methode Schick mit eine pn dann Schick ich dir den quelltext
Darf ich dich mal kurz auf unsere Richtlinien hinweisen: wir wollen hier kein Wissen verstecken oder die Diskussion auf eine private Ebene ziehen. Wenn es um Fachliches geht, warum dann nicht hier im Thread?

_________________
There are 10 types of people - those who understand binary and those who don´t.
IhopeonlyReader
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 600
Erhaltene Danke: 23


Delphi 7 PE
BeitragVerfasst: Do 24.05.12 21:45 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
.

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
bei Interesse an meiner Methode Schick mit eine pn dann Schick ich dir den quelltext
Darf ich dich mal kurz auf unsere Richtlinien hinweisen: wir wollen hier kein Wissen verstecken oder die Diskussion auf eine private Ebene ziehen. Wenn es um Fachliches geht, warum dann nicht hier im Thread?
.

Demo versions quelltet hilft anderen um weiterzukommen, aber nicht der Allgemeinheit . Er kann jetzt meinen quelltet haben, später schreib ich ein Tut wenn alles gut ist. Und es optimiert ist.

_________________
Sucht "neueres" Delphi :D
Wer nicht brauch was er hat, brauch auch nicht was er nicht hat!
Petros Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131
Erhaltene Danke: 1


Delphi7, Delphi RadStudio 10 Berlin, VSC# 2015, Java 8
BeitragVerfasst: Do 24.05.12 22:09 
ich werde die ansätze auf jedenfall probieren

ich danke euch schon mal

MFG petros
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 24.05.12 23:45 
Moin!

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
Demo versions quelltet hilft anderen um weiterzukommen, aber nicht der Allgemeinheit .
:suspect: :gruebel: :nut: :nixweiss:

user profile iconIhopeonlyReader hat folgendes geschrieben Zum zitierten Posting springen:
Er kann jetzt meinen quelltet haben, später schreib ich ein Tut wenn alles gut ist. Und es optimiert ist.
Na, da wollen wir die Allgemeinheit aber mal besser nicht drauf warten lassen :zwinker: deshalb habe ich den Code-Checkpoint 5 aus meinem o.g. Tutorial entsprechend umgebaut. Ist jetzt mit einer (wirklich simplen) Benutzerverwaltung und Authentifizierung ausgerüstet. Details im Quelltext. :les: :think:

cu
Narses
Einloggen, um Attachments anzusehen!
_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: Petros
Petros Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131
Erhaltene Danke: 1


Delphi7, Delphi RadStudio 10 Berlin, VSC# 2015, Java 8
BeitragVerfasst: Fr 25.05.12 13:37 
Danke Narses genau so wollte ich es haben naja naja meine arbeit solltest du jetzt zwar nicht beenden, aber ich danke dir trotzdem das du es gatahn hast und mir soweit helfen konntest...

MFG Petros
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 25.05.12 13:49 
Moin!

user profile iconPetros hat folgendes geschrieben Zum zitierten Posting springen:
Danke Narses genau so wollte ich es haben
:zustimm:

user profile iconPetros hat folgendes geschrieben Zum zitierten Posting springen:
meine arbeit solltest du jetzt zwar nicht beenden, aber ich danke dir trotzdem das du es gatahn hast und mir soweit helfen konntest...
:beer: Sagen wir mal so, du hast hier zufällig profitiert... ;) Andererseits ist das auch nicht ganz trivial umzusetzen, wenn man noch nicht so tief in der Materie steckt, insofern kann ich hier ganz gut damit leben, den Code geliefert zu haben. :nixweiss:

Markierst du den Thread noch entsprechend, wenn dein Problem gelöst ist? Danke. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: Petros