![]() |
brauche hile beim chat
Client:
Delphi-Quellcode:
Server:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; Memo1: TMemo; ClientSocket1: TClientSocket; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin ClientSocket1.Host := Edit1.text; ClientSocket1.Active := true; end; procedure TForm1.Button2Click(Sender: TObject); begin ClientSocket1.Socket.SendText(Edit1.Text); end; procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(Socket.ReceiveText); end; procedure TForm1.FormCreate(Sender: TObject); begin end; end.
Delphi-Quellcode:
mein kolege meinte das soll noch mit rein habe aber kp wohin ich das tun soll:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Edit1: TEdit; ServerSocket1: TServerSocket; procedure Button1Click(Sender: TObject); procedure ServerSocket1ClientWrite(Sender: TObject; Socket: TCustomWinSocket); procedure ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin ServerSocket1.Socket.SendText(Edit1.Text); end; procedure TForm1.ServerSocket1ClientWrite(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Add(Socket.ReceiveText); end; procedure TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin Showmessage('Server Error!'); end; end.
Delphi-Quellcode:
kann mir da einer weiter helfen
for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
ServerSocket1.Socket.Connections[0].SendText(ReceivedText); danke im voraus |
Re: brauche hile beim chat
Das muss in
ServerSocket1ClientWrite vermute ich, ich hab die Ereignisse grad nichtmehr ganz im Kopf, aber ich glaub des stimmt.. |
Re: brauche hile beim chat
aber de q text schtimt dan soweit oder?
|
Re: brauche hile beim chat
Du gibst dir wieder alle Mühe gegen alle Rechtschreibregeln zu verstoßen, oder ?
|
Re: brauche hile beim chat
Hai misterx,
es wäre schon von Vorteil wenn Du sagen würdest wo denn dein Problem ist. Einfach einen Code zu zeigen und zu sagen "... mein Kollege meint..." hilft nicht weiter. P.S.: Ich persönlich finde es angenehmer wenn ich zuerst etwas über das Problem lese und dann den Code darunter sehe. Ich habe nämlich keine Lust mir irgendwelchen Code anzusehen wenn ich nicht weiss warum ich das machen sollte ;-) |
Re: brauche hile beim chat
also ich versuche es dan anders ich schreibe ein chat mein kolege hat mir dabei geholfen leider ist er nicht mehr online und deswegen kann ich ihn nicht um hilfe bitten
meine frage an euch ist ob ich das alles soweit richtig gemacht habe und was mir noch fehlt |
Re: brauche hile beim chat
Versuchs doch einfach, wenn der Chat funktioniert, hast du alles richtig gemacht.
|
Re: brauche hile beim chat
habe ich da kamm immer ein soket fehler (kp mehr welcher bin nicht zuhause)
|
Re: brauche hile beim chat
Delphi-Quellcode:
Ist Schwachsinn!
for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
ServerSocket1.Socket.Connections[0].SendText(ReceivedText);
Delphi-Quellcode:
So muss es wenn schon heißen. Vorher werden in einer Schleife alle Connections durchgegengen, der Text aber immer an den Index 0 gesendet.
for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
ServerSocket1.Socket.Connections[i].SendText(Socket.ReceivedText); Wenn man diese 0 durch i ersetzt bekommen auch alle Clients die Nachricht. //Edit: ReceivedText gibt es nicht. Es muss Socekt.ReceivedText heißen. Das ganze kommt natürlich ins OnRead Ereigniss des Servers.
Delphi-Quellcode:
Ist genauso Schwachsinn! Wieso willst du den Text, den du grade an die Clients weitersendest im OnWrite Ereigniss zum Memo hinzufügen? Das muss natürlich auch gemacht werden, aber ich denke eher, dass du mit
procedure TForm1.ServerSocket1ClientWrite(Sender: TObject;
Socket: TCustomWinSocket); begin Memo1.Lines.Add(Socket.ReceiveText); end;
Delphi-Quellcode:
den empfangenen Text direkt hinzufügen willst.
Socket.ReceiveText
Daher solltest du die Zeile
Delphi-Quellcode:
auch ins OnRead und nicht ins OnWrite Ereigniss schreiben. :wink:
Memo1.Lines.Add(Socket.ReceiveText);
Ach ja ... und vermeide bitte wenigstens so unnötige Fehler, wie "brache hile beim chat". Und schöner sieht dein geposteter Text auf jeden Fall auch aus, wenn du deine Shift Taste ab und zu mal benutzt ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 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