![]() |
Re: Chat mit TURBO DELPHI
Danke aber bei mir geht nu gor nix mehr!!
Wenn ich was tippe überschreibt der immer die anderen geschriebenen Zeilen! Ausserdem hauen Sachen wie:
Delphi-Quellcode:
bei mir nicht hin
ServerSocket1.[b]Socket[/b].[b]ActiveConnections[/b]
selbst wenn ich "Socket" wegnehme motzt er bei "ActiveConnections" |
Re: Chat mit TURBO DELPHI
Nur am Rande: Der Port 23 ist eigentlich für Telnet definiert. Freie Ports sind in der Regel jenseits von 1023 zu finden.
Ansonsten schau Dir wirklich mal das eine oder andere Tutorial an...auch zum Thema "aufhübschen" von Quellcode. ;) Sherlock |
Re: Chat mit TURBO DELPHI
Ja, drücke mal auf "Einfügen" dann sollte es wieder gehen ;)
|
Re: Chat mit TURBO DELPHI
So alles ist wieder normal und ich hab mal weiter gemacht bis jetzt habe ich auch nur einen Fehler den ich nicht ganz verstehe...
Sonst glaube ich bin ich auf dem richtigen Weg... Mein Fehler ist dieser:
Delphi-Quellcode:
Und für Myport habe ich
ServerSocket.LocalPort := Myport;
Delphi-Quellcode:
festgelegt!
const
Myport = 12345; Doch dann kommt ein Fehler wegen inkompatibler Typen (String und Integer) Ich weiss nicht wieso das so sein soll? Selbst wenn ich einfach 12345 dahin schreibe kommt dasselbe raus! :cyclops: |
Re: Chat mit TURBO DELPHI
Was ist 12345? Genau: Eine Zahl. Ein Integer.
Und was ist der Typ von LocalPort? Genau der gleiche wie der RemotePort vom ClientSocket. Dem hast Du ja schon einen String zugewiesen und das hatte geklappt. Was ist denn jetzt so schwer an der Fehlermeldung zu verstehen, dass Du einem Wert, der einen String erwartet, keinen Integer zuweisen kannst? Du musst aus der Zahl 12345 eben einen String / Text machen. |
Re: Chat mit TURBO DELPHI
Ok ich hatte nur gedacht das das dann nicht mehr funktioniert
|
Re: Chat mit TURBO DELPHI
ICh weiss das ich nerve aber ich muss nochmal um nen Denkanstoß oder eine Lösung bitten!
Chat Source
Delphi-Quellcode:
Server Source
unit Chat_unit;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Sockets; type TForm2 = class(TForm) MemoRecive: TMemo; EdNick: TEdit; EdIp: TEdit; EdPort: TEdit; BtnSend: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; BtnConnect: TButton; ClientSocket: TTcpClient; Memosend: TEdit; Button1: TButton; procedure BtnConnectClick(Sender: TObject); procedure ClientSocketReceive(Sender: TObject; Buf: PAnsiChar; var DataLen: Integer); procedure FormCreate(Sender: TObject); procedure BtnSendClick(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public end; var Form2: TForm2; EdPort : string ; implementation {$R *.dfm} procedure TForm2.BtnConnectClick(Sender: TObject); begin begin ClientSocket.RemoteHost:=EdIP.Text; //Die IP wird festgelegt ClientSocket.RemotePort:= EdPort.text; //Der Port wird festgelegt ClientSocket.Open; //Verbindung zum Server wird hergestellt //if ClientSocket.connected = true then begin BtnSend.Enabled := true; MemoRecive.Lines.Add('Verbunden') end // else // Memorecive.Lines.Add('Verbindung konnte nicht hergestellt werden.'); end; end; procedure TForm2.BtnSendClick(Sender: TObject); begin if ClientSocket.ACTIVE = true then ClientSocket.Sendln(Memosend.Text) else Memorecive.Lines.Add('Nicht verbunden') end; procedure TForm2.Button1Click(Sender: TObject); begin Clientsocket.Sendln(Memosend.Text) end; procedure TForm2.ClientSocketReceive(Sender: TObject; Buf: PAnsiChar; var DataLen: Integer); begin; MemoRecive.Lines.Add(clientsocket.Receiveln()); end; procedure TForm2.FormCreate(Sender: TObject); begin BtnSend.Enabled := false; end; end.
Delphi-Quellcode:
Der server hat eben als ich irgendwas mit On Accept gemacht habe eine Nachricht empfangen aber mehr bekomme ich nicht hin!
unit chsrv;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Sockets; const Myport = 12345; type TForm2 = class(TForm) MemoRecive: TMemo; Exit: TButton; Serversocket: TTcpServer; procedure FormCreate(Sender: TObject); procedure ExitClick(Sender: TObject); private { Private-Deklarationen } public end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.ExitClick(Sender: TObject); begin Application.Terminate end; procedure TForm2.FormCreate(Sender: TObject); begin ServerSocket.LocalPort := '12345'; // den Port eintragen ServerSocket.Open; // Server aktivieren Memorecive.Lines.Add('Server online.'); end; procedure Serversocketaccept(Sender: TObject; ClientSocket: TCustomIpClient; MemoRecive: TMemo; Serversocket :TTCpserver; memosend: TEdit); var msg: String; // i: integer; begin msg := serversocket.Receiveln(memosend.text); Memorecive.lines.Add(msg); serversocket.Sendln(msg) end; end. |
Re: Chat mit TURBO DELPHI
Was soll denn der Server machen, wenn sich mehrere Clients anmelden? Zu einem Chat gehören ja nunmal mehr als einer.
Du musst Dir überlegen, wie Du die Massen von Clients verwaltest. Die Serverkomponente gibt Dir ja was zur Hilfe, den ClientSocket. Aber wie Du das auswertest, organisierst und verwendest...das ist das Ergebnis von...sagen wir mal einer Woche durcharbeiten von Delphi-Grundlagen. Also tu Dir was gutes und lies ein wenig in den Links, Die Dir gegeben wurden. Dann denk mal drüber nach, was auf der Clientseite eigentlich Button1 und BtnSend unterscheidet, oder besser noch, wofür Du beide brauchst. Weiterhin solltest Du Dir Gedanken über Codeformatierung und dem inflationären Gebrauch von begin und end machen. Natürlich möchte man als Anfänger gleich den großen Wurf landen, und die ultimative Killerapplikation schreiben. Das Forum hier ist voll von solchen ambitionierten Projekten. Aber die wenigsten haben es bis zum Ende geschafft, und schon gar nicht ohne sich dabei doch noch mit den Grundlagen zu beschäftigen. Ich würde Dich gerne unterstützen bei Deinem Vorhaben, aber ein bisschen was muss auch von Deiner Seite kommen. Lies ein paar Kapitel aus den Anfängertutorials. Dann kannst Du deutlich genauer das Problem erfassen und auch mitteilen. Aber nicht den Mut verlieren. Delphi ist gut, tausendmal besser als sein Ruf. Damit bekommst Du alles hin, was Du dir vornimmst, wenn Du Dir die Grundlagen angeeignet hast. Sherlock |
Re: Chat mit TURBO DELPHI
Oh danke für die wirklich gute Antwort...
Ich werd dann ja wohl noch ein bisschen lernen müssen... Kann mir jemand vllt. mal ein paar Buchtips geben? Dann kann ich immer zwischendurch mal lesen! P.S.: Button1 sollte eig.mal eine andere Funktion haben.. |
Re: Chat mit TURBO DELPHI
Hi,
also Buchtips... hmmm: Am Anfang hatte ich mal "Delphi in 21 Tagen". Das war nicht schlecht um schnell einzusteigen, wenn ich mich recht erinnere. Aber was mir ganz klar am meisten geholfen hat, waren die schon geposteten Tutorials. Ansonten habe ich Bücher eigentlich nur als weitere Nachschlagewerke genutzt, nachdem die Grundlagen saßen. Ich kann dir nur empfehlen, mal bei ![]() Gruß Ansgar |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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