AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Text beim Connect mitschicken
Thema durchsuchen
Ansicht
Themen-Optionen

Text beim Connect mitschicken

Ein Thema von 1ceman · begonnen am 4. Jan 2006 · letzter Beitrag vom 8. Jan 2006
Antwort Antwort
1ceman

Registriert seit: 16. Dez 2005
Ort: Odenthal
134 Beiträge
 
Delphi 6 Personal
 
#1

Text beim Connect mitschicken

  Alt 4. Jan 2006, 13:35
hi!
Ich hab nen Kleinen Chat geschrieben(der Funzt auch soweit). Und jetzt möchte ich die User verwalten.
und dazu würde ich gerne wissen, ob man bei connecten des Clients, einen Namen mitschicken kann, den ich
dan beim Event OnClientConnect vom Server abfragen und speichern kann.
Roman
  Mit Zitat antworten Zitat
1ceman

Registriert seit: 16. Dez 2005
Ort: Odenthal
134 Beiträge
 
Delphi 6 Personal
 
#2

Re: Text beim Connect mitschicken

  Alt 4. Jan 2006, 13:45
So, hab das Problem schon selber gelöst.

Client:
Clientsocket1.Host:=Nickname;

Server (OnClientConnect)
Socket.RemoteHost;
Roman
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Text beim Connect mitschicken

  Alt 4. Jan 2006, 13:47
hi,

ich gehe mal davon aus, dass du die TServerSocket- und TClientSocket-komponenten verwendest.
verschick' deine nachricht doch einfach im OnConnected-Event des Clients

aeno

edit: ähm naja, so, wie du das jetzt löst, mag's vielleicht funktionieren. aber ich persönlich find das nicht schön und glaube, dass es da evtl. noch zu fehlern kommen kann
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
1ceman

Registriert seit: 16. Dez 2005
Ort: Odenthal
134 Beiträge
 
Delphi 6 Personal
 
#4

Re: Text beim Connect mitschicken

  Alt 4. Jan 2006, 16:27
da glaubst du richtig^^
hab schon fehler bekommen
werd ich mal versuchen obs so geht
danke
//edit
muss ich den senden befehl, bei OnConnect oder bei OnConnecting reinschreiben?
Roman
  Mit Zitat antworten Zitat
1ceman

Registriert seit: 16. Dez 2005
Ort: Odenthal
134 Beiträge
 
Delphi 6 Personal
 
#5

Re: Text beim Connect mitschicken

  Alt 4. Jan 2006, 17:22
Also bei mir geht das irgendwie net.
der schickt den text nicht mit.
Roman
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Text beim Connect mitschicken

  Alt 4. Jan 2006, 17:43
also du musst beim TClientSocket das OnConnect-Event folgendermaßen ausrüsten:
Delphi-Quellcode:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Socket.SendText('nick:aenogym');
end;
(OnConnect wird ausgeführt, sobald die verbindung steht. OnConnecting wird ausgeführt, nachdem der Server gefunden wurde, aber noch bevor die verbindung aufgebaut ist)

im server musst du dann im OnClientConnect folgendes machen:
Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var s: string;
begin
  //wenn wir jetzt sofort daten holen, kann es sein, dass der client noch gar nicht soweit ist.
  //ReceiveText() gibt also einen leeren string zurück.
  //mit der while-schleife wird erreicht, dass ReceiveText() so oft ausgeführt wird, bis
  //endlich daten angekommen sind. das application.ProcessMessages() dient dazu, dass
  //unser programm während der schleife nicht "einfriert"
  s := socket.ReceiveText();
  while s = 'do
  begin
    s:=socket.receivetext();
    application.ProcessMessages();
  end;

  showmessage(s);
end;
viel erfolg,
aeno

edit: server-code korrigiert
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
1ceman

Registriert seit: 16. Dez 2005
Ort: Odenthal
134 Beiträge
 
Delphi 6 Personal
 
#7

Re: Text beim Connect mitschicken

  Alt 8. Jan 2006, 00:41
super vielen dank.geht super, echt gute idee.(hätte ich auch selber drauf kommen können^^)
Roman
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Text beim Connect mitschicken

  Alt 8. Jan 2006, 02:56
Moin!

OMG!!!

Delphi-Quellcode:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var s: string;
begin
  //wenn wir jetzt sofort daten holen, kann es sein, dass der client noch gar nicht soweit ist.
  //ReceiveText() gibt also einen leeren string zurück.
  //mit der while-schleife wird erreicht, dass ReceiveText() so oft ausgeführt wird, bis
  //endlich daten angekommen sind. das application.ProcessMessages() dient dazu, dass
  //unser programm während der schleife nicht "einfriert"
  s := socket.ReceiveText();
  while s = 'do
  begin
    s:=socket.receivetext();
    application.ProcessMessages();
  end;

  showmessage(s);
end;
1. ReceiveText kann deine ganze Nachricht gestückelt wiedergeben, daher ist nichtmal gesagt, das ein ReceiveText mit einem Inhalt <> '' das richtige enthält
2. Eine Thread-basierende Kommunikation wieder in ein Polling Abfrage System zu drücken ist wirklich mal eine Leistung.
3. Mit Application.ProcessMessages die GUI bedienbar machen ohne sich vorher um deren ordentlichen Stand zu kümmern, ist auch mies.
4. OnClientRead nutzen - vorher ist keine Nickangabe möglich. Und wenn im Chat erstmal die IP Adresse steht und während der Laufzeit durch den übermittelten Nick ersetzt wird. Schliesslich geschieht das im Normalfall im Bereich von Millisekunden - aber ein Polling im OnClientConnect ist wirklich die Härte.

So, und nun zerreisst euch das Maul über meinen Beitrag, ich bin 2 Tage nicht da...
  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 03:30 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