VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Heyho,
Mir ist es etwas peinlich danach zu fragen da es unzählige Tutorials gibt, die mir aber alle nicht weitergeholfen haben. Ich habe bereits einen Chat mit Server und Clienten programmiert. ( Wie so ziemlich jeder der mit Sockets etc anfängt. :P ) Beide Anwendungen waren VCL-Anwendungen. Es hat auf den ersten Versuch reibungslos geklappt. Nun versuche ich meinen VCL-Server mit einem Konsolen-Clienten zu verbinden.. klappt aber agr nicht. Delphi gibt mir keinen Syntax-Fehler jeddoch verbinden die beiden nicht. Den Server habe ich mit telnet getestet, es ging. Liegt wohl am Client. Hier unten ist mal der Client Code.
Delphi-Quellcode:
program Project2;
{$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, ScktComp, ShellApi, Windows; var clientSocket: TClientSocket; begin try //Sockets clientSocket := TClientSocket.Create(nil); clientSocket.Host := '127.0.0.1'; clientSocket.Port := 9126; clientSocket.Open; Readln; Finally end; end. |
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Man mag es kaum glauben, aber diese Socket-Komponenten arbeiten mit Windows-Messages ... sie benötigen also die VCL (deren Messagebehandlung) oder du mußt selber diese Messages behandeln/verarbeiten (Stichwort: Message-Loop).
|
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Wenn man das kaum glauben mag ist das durchaus berechtigt. Dass man aus der schwammigen Formulierung
Zitat:
Ich fände mir von einem "Man mag es ja kaum glauben, ..." doch ziemlich auf die Füße getreten. |
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Diese Tatsache hätte man eventuell auch aus vielen Tutorials rauslesen können, welche das Problemchen hoffentlich erwähnen, oder indem man nach hängt/freeze/... sucht.
PS: In Vielen der Socketkomponenten fundet man so schöne HWND und Dergleichen. Unit ScktComp: Messages, WM_USER und in TCustomWinSocket die vielen Message-Events, hätten einen schon etwas stutzig machen können. Unit Sockets? Arbeitet Indy eigentlich komplett mit Threads, Events und ohne Windows-Messages? (abgesehn vom TidAntiFreeze) |
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Zitat:
|
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Kommt drauf an, bei was man Anfänger ist.
Vielleicht hatte er ja vorher ja auch schon viele Jahre Erfahrung in C++ oder mit Nicht-Socket-Delphi-Zeugs. :D |
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Was mich nur wundert- Die Win3.1-Socket-Komponenten sind doch schon seit Delphi7 oder so standardmäßig nicht mehr installiert, oder? Höchst mysteriös.
PS: Wie verhält sich das eigentlich mit Datenmodulen in einer Konsolenanwendung? Ich meine, ich hatte für einen Test mal eine Konsolenanwendung mit einem Datenmodul mit Timer drauf. Und der funktionierte bestens. Und der geht ja auch über Messages. Also hätte in diesem Fall die Doku, trotz der flachsigen Formulierung, wahrscheinlich absolut Recht: Wenn du in einer Konsolenanwendung noch gerne mit den Windows 3.1-Socketkomponenten arbeiten möchtest stehen die Chancen wohl gut, diese auf ein Datenmodul packen zu können. |
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Zitat:
Gruß K-H |
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Timer: Eine Konsolenanwendung hat keine Messagebehandlung, außer du hattest selber eine eingebaut,
oder du hattest etwas benutzt, welches sowas macht. (z.B. Application.ProcessMessages?) |
AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
TTimer erzeugt einfach sein eigenes Windowhandle.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 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