Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Chat (https://www.delphipraxis.net/8199-chat.html)

Die Muhkuh 30. Aug 2003 16:16


Chat
 
Hi,

ich hab nen kleinen chat programmiert. Das Problem ist nur wenn ich was schreibe kommt es immer doppelt!

Hier der Code von Client:
Delphi-Quellcode:
procedure TClient.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  memo1.lines.add(Socket.ReceiveText);
end;

procedure TClient.Button1Click(Sender: TObject);
begin
  ClientSocket1.Active := false;
  ClientSocket1.Host := Edit2.text;
  ClientSocket1.Active := true;
end;

procedure TClient.Button2Click(Sender: TObject);
begin
  ClientSocket1.Socket.SendText(Edit3.text + ': ' + edit1.Text);
  ClientSocket1.Socket.SendText(Edit1.text);
  Edit1.text := '';

end;

procedure TClient.Button4Click(Sender: TObject);
begin
  Server1.show;
end;
Und hier der Code vom Server:
Delphi-Quellcode:
rocedure TServer1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  inc(ClientCount);
end;

procedure TServer1.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  dec(ClientCount);
end;

procedure TServer1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  i: Integer;
  t: string;
begin
  t := Socket.ReceiveText;
  for i := 0 to ClientCount-1 do
  ServerSocket1.Socket.Connections[i].SendText(t);
  memo1.Lines.Add(t);
end;

procedure TServer1.FormCreate(Sender: TObject);
begin
  ServerSocket1.Active := true;
end;
So was kann ich dann tun?

Spider

Sharky 30. Aug 2003 16:26

Re: Chat
 
Zitat:

Zitat von Spider
Hi,

ich hab nen kleinen chat programmiert. Das Problem ist nur wenn ich was schreibe kommt es immer doppelt!

Hier der Code von Client:
Delphi-Quellcode:
procedure TClient.Button2Click(Sender: TObject);
begin
  ClientSocket1.Socket.SendText(Edit3.text + ': ' + edit1.Text);
  ClientSocket1.Socket.SendText(Edit1.text);
  Edit1.text := '';
end;
So was kann ich dann tun?

Spider

Eventuell Edit1.Text nur einmal senden? :D

Die Muhkuh 30. Aug 2003 16:30

Re: Chat
 
Ohha, da hab ich doch glatt was übersehen. :oops: Peinlichh :oops:


THX

Die Muhkuh 30. Aug 2003 17:34

Re: Chat
 
Neuer Chat neues Problem!

Delphi-Quellcode:
var
  Form1: TForm1;
  clientcount: Integer=0;

implementation

{$R *.DFM}

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

procedure TForm1.SenderClick(Sender: TObject);
begin
  memo1.Lines.Add(User.text+': '+senden.text);
  Senden.text := '';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  ClientSocket1.Active := false;
  ClientSocket1.Host := Host.Text;
  ClientSocket1.Active := true;
end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  inc(Clientcount);
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  dec(Clientcount);
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
 i: Integer;
 t: string;
begin
 t := Socket.receivetext;
 for i := 0 to Clientcount-1 do
 Serversocket1.Socket.Connections[1].SendText(t);
 memo1.lines.add(t);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  ClientSocket1.Active := false;
end;
Jetzt bekomm ich ne Fehlermeldung: Asyncroner Socker Fehler: 10061 was nu ich hab keine Fehler im Quelltext enteckt!

kiar 30. Aug 2003 17:39

Re: Chat
 
gegoogelt

http://www.logsat.com/spamfilter/for...messageID=1206

Minz 30. Aug 2003 18:04

Re: Chat
 
Probiers mal mit

Code:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
   i: Integer;
   t: string;
begin
   t := Socket.receivetext;
   for i := 0 to Clientcount-1 do
       Serversocket1.Socket.Connections[i].SendText(t);
   memo1.lines.add(t);
end;
i statt 1 :mrgreen:

Die Muhkuh 30. Aug 2003 20:22

Re: Chat
 
Das mit dem 1 statt i ist schon behoben! Geht trotzdem nicht!

Minz 30. Aug 2003 22:10

Re: Chat
 
Es muss auch kein richtiger Fehler sein. Die Meldung tritt oft dann auf, wenn du auf eine Netzwerkverbindung zugreifen willst, die nicht existiert. Z.B. dann wenn der Server an den Client was schicken will, dieser aber gar net aktiv ist.

Also kein Syntax-Fehler sondern eher ein Reihenfolgen/Zeit/Umstands-Fehler :mrgreen:

Die Muhkuh 31. Aug 2003 17:44

Re: Chat
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also dieser Fehler besteht weiter hin!

Ich hab den Chat mal angehängt mit Source natülich!

Bitte um Hilfe!


Spider

Minz 31. Aug 2003 18:04

Re: Chat
 
Habe nur Delphi 4...funzt das mit Delphi 5?

Die Muhkuh 31. Aug 2003 18:12

Re: Chat
 
ich habs mit Delphi5 pro geschrieben!
Kann sein das es mit 4 nicht läuft. Muss mal ausprobieren!

Minz 31. Aug 2003 18:32

Re: Chat
 
Sorry kanns mit Delphi 4 net anschauen!

Die Muhkuh 3. Sep 2003 14:09

Re: Chat
 
Will das Thema nochmal aufgreifen! Da mein Problem immer noch besteht!

thorraY 22. Nov 2003 17:00

Re: Chat
 
hey spider! ich bin neu hier und interressiere mich auch sehr für socket-programmierung und mache daher auch gerade ein chatprogramm...
ich hab ne idee zu deinem problem:

versuch mal noch ein editfeld mit PORT: ______ zu machen. wenn du zum internet connectest müsstest du auch ports angeben

clientsocket1.port := StrToInt(Edit1.Text);

StrToInt, weil Port ein Integer ist

weitere fragen?
cu

Die Muhkuh 22. Nov 2003 17:23

Re: Chat
 
Hi thorraY und willkommen in der DP :dp:


Danke für die Hilfe, aber ich hab schon mit nem anderen ein Chat gemacht :wink:

Aber dort tritt das gleiche Problem auf! Wir werden es mal testen!

Kamil 22. Nov 2003 17:38

Re: Chat
 
Hab mir den Chat kurz angeschaut und festgestellt, dass du vergessen hast einen Port auszuwählen:
du musst sowohl beim Server als auch beim Client einen gültigen Port auswählen.
Der Client muss dann zum Port vom Server eine Verbindung aufbauen.


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