AGB  ·  Datenschutz  ·  Impressum  







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

Delphi - Chat

Ein Thema von luggas · begonnen am 5. Mär 2011 · letzter Beitrag vom 24. Apr 2011
Antwort Antwort
luggas

Registriert seit: 5. Mär 2011
1 Beiträge
 
#1

Delphi - Chat

  Alt 5. Mär 2011, 17:12
Hi Leute,
ich hab mich hier mal an einen Chat gesetzt und wollte ihn mit Delphi porgrammieren.
Hier mal die Source-Codes

Server

Delphi-Quellcode:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Button1: TButton;
    TcpServer1: TTcpServer;
    Memo1: TMemo;
    Edit1: TEdit;
    Button2: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    Edit2: TEdit;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure TcpServer1Accept(Sender: TObject; ClientSocket: TCustomIpClient);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation
  uses unit1;
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
Tcpserver1.close;
form2.Close;
form1.Visible:=true;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
Tcpserver1.LocalHost:=edit1.Text;
Tcpserver1.Open;
end;

procedure TForm2.Button3Click(Sender: TObject);
var line2:string;
begin
line2:=edit2.Text;
Tcpserver1.Sendln(line2);
memo1.Lines.Add('Host# '+line2);
end;

procedure TForm2.TcpServer1Accept(Sender: TObject;
  ClientSocket: TCustomIpClient);
  var line:string;
begin
line:='';
while ClientSocket.Connected
do
begin
line:=ClientSocket.Receiveln();
memo1.Lines.Add('Client# '+line);
end;
end;

end.


Client

Delphi-Quellcode:
unit Unit3;

interface

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

type
  TForm3 = class(TForm)
    Button1: TButton;
    Button3: TButton;
    Edit2: TEdit;
    Memo1: TMemo;
    Panel2: TPanel;
    Panel1: TPanel;
    Edit1: TEdit;
    Button4: TButton;
    TcpClient1: TTcpClient;
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure TcpClient1Connect(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;

implementation
  uses unit1;
{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
Tcpclient1.Close;
form3.Close;
form1.Visible:=true;
end;

procedure TForm3.Button3Click(Sender: TObject);
var line1:string;
begin
line1:=edit2.Text;
TcpClient1.Sendln(line1);
memo1.Lines.Add('Client# '+line1);
end;

procedure TForm3.Button4Click(Sender: TObject);
begin
TcpClient1.RemoteHost:=edit1.Text;
TcpClient1.Open;
//TcpClient1.Connect;
end;

procedure TForm3.TcpClient1Connect(Sender: TObject);
var line:string;
begin
line:='';
while TcpClient1.Connected
do
begin
line:=TcpClient1.Receiveln();
memo1.Lines.Add('Host# '+line);
end;
end;

end.

Wenn ich dann mit dem Client auf den Server connecten will bleibt der client hängen.
Beide sind auf bmblocking eingestellt.
Ich hoffe ihr könnt mir weiter helfen.
Angehängte Dateien
Dateityp: 7z Chat.7z (299,9 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
TDR
(Gast)

n/a Beiträge
 
#2

AW: Delphi - Chat

  Alt 12. Mär 2011, 17:23
Schau dir das Video mal an vllt hilft es dir

Video
  Mit Zitat antworten Zitat
Benutzerbild von Jacques Murell
Jacques Murell

Registriert seit: 7. Jun 2010
113 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Delphi - Chat

  Alt 12. Mär 2011, 20:28
Nettes Video, da musste Sohnemann mit seinen 15 Jahren aber lange auf die Delphi 2010 Architekt sparen.
  Mit Zitat antworten Zitat
TDR
(Gast)

n/a Beiträge
 
#4

AW: Delphi - Chat

  Alt 12. Mär 2011, 21:14
[nicht zum Thema]
das Video is nich von mir...
(gefunden im I-Net)
[/nicht zum Thema]
  Mit Zitat antworten Zitat
DArc

Registriert seit: 3. Jun 2009
48 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Delphi - Chat

  Alt 24. Apr 2011, 21:25
hey, sorry, dass ich hier mal was loswerden will.
ich finde das video persönlich nicht wirklich toll.
er behandelt keine fehler (außer errorcode - aber naja ...), die auftreten könnten; und auch erklärt er nur
anfänger zeugs und nicht wirklich den Client-Server-Chat. unsauber gecoded, keine funktionen sondern einfach nur copy&paste

hinzukommt, dass ich indy persönlich umfangreicher( - dementsprechend vielleicht auch etwas komplizierter - ) finde.

kommt mir so vor, als ob er sich eine demo oder ein tut reingezogen und anschließend ein video davon gemacht hätte
(etwa http://www.informatik-treff.de/mater...chat/chat.html)

ich habe bereits einen chat mit indy in delphi 7 programmiert, habe aber dennoch eine frage

ist es besser, wenn der client eine Message mit Absender-Empfänger-Inhalt abschickt und ...
- der server nach dem Get der Message an alle clients diese Message weitergibt und diese von ihnen ausgewertet wird?
- beim connecten die informationen (also ip, benutzername o.ä.) des clients in einem (dynamischen?) array abgespeichert werden
und bei bedarf, also nach dem Get der Message, ausgelesen werden und die message an den bestimmten client weitergeleitet wird?

hoffe, dass das hier einigermaßen verständlich war

Mfg DArc
Ich würde gerne die Welt verändern, doch Gott hat
vergessen mir die Quellcodes zu geben ... !
  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 12:16 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