![]() |
Delphi - Chat
Liste der Anhänge anzeigen (Anzahl: 1)
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. |
AW: Delphi - Chat
|
AW: Delphi - Chat
Nettes Video, da musste Sohnemann mit seinen 15 Jahren aber lange auf die Delphi 2010 Architekt sparen. :mrgreen::mrgreen:
|
AW: Delphi - Chat
[nicht zum Thema]
das Video is nich von mir... (gefunden im I-Net) [/nicht zum Thema] |
AW: Delphi - Chat
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 ![]() 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz