Hallo Scrat !
Probier es mal so :
1. Diese Funktion in dein Server einbauen :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| function GetToken(aString, SepChar: string; TokenNum: Byte): string; var Token: string; StrLen: Byte; Num: Byte; EndofToken: Byte; begin StrLen := Length(aString); Num := 1; EndofToken := StrLen; while ((Num <= TokenNum) and (EndofToken <> 0)) do begin EndofToken := Pos(SepChar, aString); if EndofToken <> 0 then begin Token := Copy(aString, 1, EndofToken - 1); Delete(aString, 1, EndofToken); Inc(Num); end else Token := aString; end; if Num >= TokenNum then Result := Token else Result := ''; end; |
2. Deine Nachrichten schickst du dann im folgenden Format :
Quelltext
1:
| ClientSocket1.Socket.SendText('NickName'+'#'+Edit1.Text); |
Die Raute (#) ist zur Trennung des Nicknamens von der Eigentlichen Nachricht.
3. Wenn die Nachricht jetzt an deinem Server ankommt, kannst du Sie mit der Function Gettoken auseinander nehmen.
z.b. so :
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Var NickName: String; Nachricht: String; S: String; Begin S:=Socket.Receiveln;
NickName:=Trim(Gettoken(S, '#' ,1)); Nachricht:=Trim(Gettoken(S, '#' ,2)); |
In der Variable Nickname steht jetzt der Nickname der Gesendet wurde und in der Variable Nachricht steht jetzt der Eingegebene Nachrichten Text.
4. NickName in die ListBox Adden.
Ich habe denn Quelltext nicht Getestet, aber er sollte Funktionieren.
Mfg
Mario
