Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Startschwierigkeiten bei Chatprogramm (https://www.delphipraxis.net/45112-startschwierigkeiten-bei-chatprogramm.html)

Money Making Machinist 29. Apr 2005 21:48


Startschwierigkeiten bei Chatprogramm
 
Hi,

ich versuche mich grad an einem simplen Chatprogramm, aber so richtig gelingen will es nicht :(.

Hier mal der Code. Was bei mir nicht klappt, ist das der Client keine Nachricht abschicken kann bzw keine beim Server ankommt.


Server:
Delphi-Quellcode:
unit u_Server;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ScktComp, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    ServerSocket1: TServerSocket;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure ServerSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure ServerSocketClientListen(Sender: TObject; Socket: TCustomWinSocket);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Port:= strtoint(edit1.text);
ServerSocket1.Active:= true;
end;

procedure TForm1.ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
     Memo1.Lines.Add(Socket.ReceiveText);
end;

procedure TForm1.ServerSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
     Memo1.Lines.Add('Client angeschlossen');
end;

procedure TForm1.ServerSocketClientListen(Sender: TObject; Socket: TCustomWinSocket);
begin
     Memo1.Lines.Add('Client auf dem Weg');
end;

end.
Client:
Delphi-Quellcode:
unit u_Client;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ScktComp;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit3: TEdit;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientSocket1.Port := strtoint(edit1.text); //Festlegung des Ports
  ClientSocket1.Host := '127.0.0.1'; //IP des Zielrechners
  ClientSocket1.active := true; //Aufbau der Verbindung
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if ClientSocket1.Active then
    ClientSocket1.Socket.SendText(edit3.text);
end;

end.
Ich hatte gehofft ihr könntet mir ein klein wenig hierbei unter die Arme greifen. Danke.

Ich versuche das ganze mit Delphi 5.

yankee 29. Apr 2005 22:20

Re: Startschwierigkeiten bei Chatprogramm
 
Das problem ist jetzt so schwierig nachzuvollziehen. Passiert einfach garnichts? Oder gibt es eine Exeption? Vielelicht eine Firewall? Sind die ports gleich?

Vielleicht hilft dir auch das weiter:
http://www.delphipraxis.net/internal...ct.php?t=24794
ein kleinenes Tutorial, wo ein chatprogramm nach deinem Prinzip funktioniert. Vielleicht findest du deinen Fehler ja uch selber ;-)

Money Making Machinist 30. Apr 2005 09:27

Re: Startschwierigkeiten bei Chatprogramm
 
Zitat:

Zitat von yankee
Das problem ist jetzt so schwierig nachzuvollziehen. Passiert einfach garnichts? Oder gibt es eine Exeption? Vielelicht eine Firewall? Sind die ports gleich?

Jo es passiert einfach gar nichts. Keine Exception, keine Firewall (extra ausgemacht) und die Ports san au gleich.

Zitat:

Vielleicht hilft dir auch das weiter:
http://www.delphipraxis.net/internal...ct.php?t=24794
ein kleinenes Tutorial, wo ein chatprogramm nach deinem Prinzip funktioniert. Vielleicht findest du deinen Fehler ja uch selber ;-)
Ich hab mir das (neben anderen Tutorials) auch schon angeschaut, sonst hätt ich auch gar nicht angefangen hier einen Beitrag reinzusetzen.

Zacherl 9. Mai 2005 16:46

Re: Startschwierigkeiten bei Chatprogramm
 
Ich mache das immer so:

Delphi-Quellcode:
procedure TForm1.ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket);
var s: string;
begin
  s := Socket.ReceiveText;
  Memo1.Lines.Add(s);
end;
Klappt (bei mir) eigentlich immer.

BornToBeBreit 14. Mai 2005 20:51

Re: Startschwierigkeiten bei Chatprogramm
 
Also so wie ich das sehe, liegt das peoblem am server oder?

Also der server erhält zwar einen text, sendet ihn aber nicht an die clients zurück.

also ich hab das bei meinem chat so gemacht.

Delphi-Quellcode:

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var

Text:string;
i: Integer;

begin

Text := Socket.ReceiveText;
Memo1.Lines.add(Timetostr(now)+': '+Text);
For I := 0 to ServerSocket1.Socket.ActiveConnections - 1 do

begin

with ServerSocket1.Socket.Connections [I] do
if (Connected) then SendText(Text);

end;
end;
Bei mir funktionirts einwandfrei.

Und dann muss da doch noch was am client gemacht werden.

Das muss noch ins OnClientRead

Delphi-Quellcode:
Memo1.Lines.Add(Socket.ReceiveText);
Weil sonst empfängt der client ja nix.

Also so müsste es gehen


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 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