![]() |
Problem bei einem einfachem chat mit Client und ServerSocket
Guten Abend. Ich habe ein Problem mit meinem Chat.
Der Server soll dem Clienten eine Nachricht senden und der Client kann genauso dem Server eine nachricht senden. Jedoch gibt es bei mir ein Problem Der Client emfängt zwar die nachricht vom Server jedoch empfängt der Server nicht die nachricht vom Client... Client
Delphi-Quellcode:
Server
unit Client;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls; type TForm1 = class(TForm) nicklbl: TLabel; nicked: TEdit; nickbut: TButton; adresseed: TEdit; connectbut: TButton; adresselbl: TLabel; chatlog_memo: TMemo; nachrichted: TEdit; sendenbut: TButton; ClientSocket: TClientSocket; procedure ClientSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); procedure sendenbutClick(Sender: TObject); procedure connectbutClick(Sender: TObject); procedure nickbutClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; nickname : String; implementation {$R *.dfm} procedure TForm1.ClientSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin ErrorCode := 0; end; procedure TForm1.ClientSocketConnect(Sender: TObject; Socket: TCustomWinSocket); begin adresselbl.Enabled := false; adresseed.Enabled := false; connectbut.Enabled := false; nicklbl.Enabled := true; nicked.Enabled := true; nickbut.Enabled := true; end; procedure TForm1.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket); var str: string; begin str := ClientSocket.Socket.ReceiveText; chatlog_memo.Lines.Add(str); end; procedure TForm1.sendenbutClick(Sender: TObject); begin chatlog_memo.Lines.Add(nickname + ' sagt: ' + nachrichted.Text); ClientSocket.Socket.SendText(nickname + ' sagt: ' + nachrichted.Text); nachrichted.Text := ''; end; procedure TForm1.connectbutClick(Sender: TObject); begin ClientSocket.Host := adresseed.Text; ClientSocket.Port := 2000; ClientSocket.Active := true; end; procedure TForm1.nickbutClick(Sender: TObject); begin nickbut.Enabled := false; nicked.Enabled := false; nicklbl.Enabled := false; nickname := nicked.Text; chatlog_memo.Enabled := true; nachrichted.Enabled := true; sendenbut.Enabled := true; end;
Delphi-Quellcode:
weis einer wo der fehler ist ?
sendbut: TButton;
server: TServerSocket; procedure nickbutClick(Sender: TObject); procedure waitbutClick(Sender: TObject); procedure serverClientConnect(Sender: TObject; Socket: TCustomWinSocket); procedure serverClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); procedure sendbutClick(Sender: TObject); procedure serverClientRead(Sender: TObject; Socket: TCustomWinSocket); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; nickname : String; implementation {$R *.dfm} procedure TForm1.nickbutClick(Sender: TObject); begin nickbut.Enabled := false; nicked.Enabled := false; nicklbl.Enabled := false; nickname := nicked.Text; waitbut.Enabled := true; end; procedure TForm1.waitbutClick(Sender: TObject); begin server.Port := 2000; server.Active := true; end; procedure TForm1.serverClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin chatlog.Enabled := true; msged.Enabled := true; sendbut.Enabled := true; end; procedure TForm1.serverClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); begin ErrorCode := 0; ShowMessage('Schwul?'); end; procedure TForm1.sendbutClick(Sender: TObject); var i: integer; begin chatlog.Lines.Add(nickname + ' sagt: ' + msged.Text); for i:=0 to server.Socket.ActiveConnections-1 do begin server.Socket.Connections[i].SendText(nickname + ' sagt: ' + msged.Text); end; msged.Text := ''; end; procedure TForm1.serverClientRead(Sender: TObject; Socket: TCustomWinSocket); str: string; begin str := ClientSocket.Socket.ReceiveText; chatlog_memo.Lines.Add(str); end; lg Muffel |
Re: Problem bei einem einfachem chat mit Client und ServerSo
beim senden seh ich jetzt kein problem
von daher liegt das problem wohl beim OnClientRead des servers Zitat:
Delphi-Quellcode:
soweit ich das hier in erinnerung habe ;) probier das mal
Socket.ReceiveText
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 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