AGB  ·  Datenschutz  ·  Impressum  







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

nick senden

Ein Thema von yoshie · begonnen am 15. Feb 2003 · letzter Beitrag vom 16. Feb 2003
Antwort Antwort
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
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#2
  Alt 15. Feb 2003, 18:10
client:
Code:
cs.Socket.SendText('/nick' + nick.text+' '+':'+' '+text.text);
auslesen dann so:
server:

Code:
if copy(rec,1,5)= '/nick' then
  begin
  listbox1.add(copy(rec,6,length(rec)-6)
end;
habs nicht ausprobiert, sollte aber funzen!
  Mit Zitat antworten Zitat
yoshie

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

re

  Alt 15. Feb 2003, 18:14
vielen dank ich werde es gleich mal versuchen
  Mit Zitat antworten Zitat
yoshie

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

re

  Alt 15. Feb 2003, 18:24
also ich habe nun unter


Code:

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;

Code:
if copy(rec,1,5)= '/nick' then
  begin
  listbox1.add(copy(rec,6,length(rec)-6)
end;
geschrieben, aber funktionieren tut es immer noch cnith. Kann es sein, dass ich es an eine falsche stelle gesetzt habe? Im client habe ich das /nick eingetragen.
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#5
  Alt 15. Feb 2003, 20:13
Code:
 rec:=Socket.ReceiveText;
if copy(rec,1,5)= '/nick' then
 listbox1.add(copy(rec,6,length(rec)-6)
else
  begin
  for i := 0 to ss.Socket.ActiveConnections -1 do
    begin
    ss.socket.Connections[i].SendText(rec);
    end;
  end;
probiers mal so!

wenns nicht klappt, dann mach mal ein "showmessage(rec)" ganz am anfang, nachdem rec eingelesen wurde. dann siehts du was wirklich ankommt!
musst mal etwas rumexperiementieren!
  Mit Zitat antworten Zitat
yoshie

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

re

  Alt 16. Feb 2003, 13:53
vielen dank hat ir viel weitergeholfen
  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 21:23 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