Thema: Delphi nick senden

Einzelnen Beitrag anzeigen

yoshie

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

nick senden

  Alt 15. Feb 2003, 16:52
hi,

ich arbeite immer noch an meinem chatprogramm. Und ich habe es bis jetzt noch nicht hinbekommen, den nick vom editfels (nick.text) an den server zu schicken, wo er dann ausgelesen wird. Hier ist noch mal mein quelltext.

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);
    procedure csConnect(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private-Deklarationen }
  public
  name,namer:string;
  end;

var
  hauptfenster: Thauptfenster;

implementation

{$R *.dfm}

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


procedure Thauptfenster.Button2Click(Sender: TObject);
var name:string;
begin
cs.Active:=true;        // Aufbau der Verbindung
end;


procedure Thauptfenster.Button1Click(Sender: TObject);
begin

          if cs.Socket.Connected=true then     // wenn Verbindung besteht,
          cs.Socket.SendText(nick.text+' '+':'+' '+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;



procedure Thauptfenster.csConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
socket.SendText(nick.text);

end;

end.

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
 socket.SendText('Herzlich Willkommen im Chat');     //Server sendet Text an neu angemeldeten Clients
 listbox1.Items.add(socket.ReceiveText);
 end;

 end.
Ich hoffe Ihr könnt mir diesmal helfen also ich möchte halt diesen string des nicknames an den server schicken und dort in eins listbox eintragen. Ich habe jetzt wirklich fast 2 wochen dran gearbeitet und ich bekomme es nciht hin. BITTE helft mir.

Danke schön im Vorraus

Thomas
  Mit Zitat antworten Zitat