AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem bei einem einfachem chat mit Client und ServerSocket
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei einem einfachem chat mit Client und ServerSocket

Ein Thema von Muffel · begonnen am 6. Dez 2008 · letzter Beitrag vom 6. Dez 2008
Antwort Antwort
Muffel

Registriert seit: 11. Aug 2007
11 Beiträge
 
#1

Problem bei einem einfachem chat mit Client und ServerSocket

  Alt 6. Dez 2008, 20:10
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:
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;
Server
Delphi-Quellcode:
    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;
weis einer wo der fehler ist ?

lg

Muffel
  Mit Zitat antworten Zitat
blink182

Registriert seit: 19. Jun 2007
126 Beiträge
 
Delphi 5 Standard
 
#2

Re: Problem bei einem einfachem chat mit Client und ServerSo

  Alt 6. Dez 2008, 21:42
beim senden seh ich jetzt kein problem
von daher liegt das problem wohl beim OnClientRead des servers

Zitat:
Delphi-Quellcode:
procedure TForm1.serverClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
str: string;

begin


str := ClientSocket.Socket.ReceiveText;

chatlog_memo.Lines.Add(str);
end;
um genauer zu sein "ClientSocket.Socket.ReceiveText" - richtiger wäre hier Socket.ReceiveText soweit ich das hier in erinnerung habe probier das mal
  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 01:32 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