![]() |
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:
Und hier der Code vom Server:
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;
Delphi-Quellcode:
So was kann ich dann tun?
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; Spider |
Re: Chat
Zitat:
|
Re: Chat
Ohha, da hab ich doch glatt was übersehen. :oops: Peinlichh :oops:
THX |
Re: Chat
Neuer Chat neues Problem!
Delphi-Quellcode:
Jetzt bekomm ich ne Fehlermeldung: Asyncroner Socker Fehler: 10061 was nu ich hab keine Fehler im Quelltext enteckt!
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; |
Re: Chat
|
Re: Chat
Probiers mal mit
Code:
i statt 1 :mrgreen:
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; |
Re: Chat
Das mit dem 1 statt i ist schon behoben! Geht trotzdem nicht!
|
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: |
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 |
Re: Chat
Habe nur Delphi 4...funzt das mit Delphi 5?
|
Re: Chat
ich habs mit Delphi5 pro geschrieben!
Kann sein das es mit 4 nicht läuft. Muss mal ausprobieren! |
Re: Chat
Sorry kanns mit Delphi 4 net anschauen!
|
Re: Chat
Will das Thema nochmal aufgreifen! Da mein Problem immer noch besteht!
|
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 |
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! |
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