AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

kleines chatprog

Ein Thema von yoshie · begonnen am 6. Feb 2003 · letzter Beitrag vom 6. Feb 2003
Antwort Antwort
yoshie

Registriert seit: 8. Dez 2002
55 Beiträge
 
#1

kleines chatprog

  Alt 6. Feb 2003, 10:53
hi leute,

ich hätt da mal ein frage, ich arbete an einem kleinen chatprogramm und komme an einer stelle nciht weiter. Hier ist erstmal der quellcode von dem was ich bisher habe:


Client:

Code:

unit UClient;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;

type
  Thauptfenster = class(TForm)
    cs: TClientSocket;
    Memo1: TMemo;
    Button1: TButton;
    text: TEdit;
    ListBox1: TListBox;
    Button2: TButton;
    ip: TEdit;
    nick: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure csRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen } 
  public
  name:string;
  end;

var
  hauptfenster: Thauptfenster;

implementation

{$R *.dfm} 

procedure Thauptfenster.FormCreate(Sender: TObject);
begin
           cs.Port:=2003;            // Festlegung des Ports
           cs.host:=ip.text;
end;


procedure Thauptfenster.Button2Click(Sender: TObject);
var name:string;
begin
cs.Active:=true;        // Aufbau der Verbindung
name:=nick.text;        //nickname in variable speichern
end;


procedure Thauptfenster.Button1Click(Sender: TObject);
begin

          if cs.Socket.Connected=true then     // wenn Verbindung besteht,
          cs.Socket.SendText(text.text);         // sendet er den text

end;


procedure Thauptfenster.csRead(Sender: TObject; Socket: TCustomWinSocket);

   var rec:String;
         begin
         rec:=socket.ReceiveText;     // der empfangene Text wird in die Variable 'rec' geschrieben
         Memo1.Lines.Add(rec);        // Ausgabe der Variable 'rec'

end;



end.
und der Quelltext von der serveranwendung

Server:

Code:

unit UServer;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;

type
  TForm1 = class(TForm)
    ss: TServerSocket;
    Memo1: TMemo;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure ssClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure ssClientConnect(Sender: TObject; Socket: TCustomWinSocket);

  private
    { Private-Deklarationen } 
  public
    rec:String;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 

procedure TForm1.FormCreate(Sender: TObject);
begin
           ss.Port:=2003;            // Festlegung des Ports
           ss.Active:=true;        // Aktivierung der ServerSocket
end;

procedure TForm1.ssClientRead(Sender: TObject; Socket: TCustomWinSocket);

var
  i: Integer;
begin
  rec:=Socket.ReceiveText;             //Empfangene Text wird in eine Variable geschrieben
  for i := 0 to ss.Socket.ActiveConnections -1 do
  begin
    ss.socket.Connections[i].SendText(rec);     //Server sendet Text an alle Clients
  end;



  end;


procedure TForm1.ssClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
   var
  i: Integer;
  name:string;
  begin
 
  for i := 0 to ss.Socket.ActiveConnections -1 do
  begin
    ss.socket.Connections[i].SendText('Herzlich Willkommen im Chat');     //Server sendet Text an neu angemeldeten Clients
  end;
end;

end.
Nun mein Problem. Ich möchte nun das der user seinen nick eingibt, dann wird dieser beim connecten zum server geschickt und wieder an alle clients zurückgegeben. Am Ende soll es darauf hinauslaufen dass sämtliche eingeloggte user in eine Combobox bei der clientanwenduung zu sehen sind.
kann mir da jemand weiterhelfen? Also Wertegang von der nickeingabe bis zur ausgefülten combobox. Wäre sehr freundlich

cu yoshie[/delphi]
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 6. Feb 2003, 10:57
Schau Dir mal die Indy-Komponenten an, da gibt es dazu auch ein Demo. Borland selbst empfiehlt die Indy-Kompos anstatt seiner eigenen Client/Server-Socket Kompos.
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
yoshie

Registriert seit: 8. Dez 2002
55 Beiträge
 
#3

re

  Alt 6. Feb 2003, 12:16
ich habe es schon mit den indy versucht bin nur nicht so gut mit urechtgekommen. Kann mir denn keiner zu der konkreten frage helfen?
  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 19:25 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