AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.
Thema durchsuchen
Ansicht
Themen-Optionen

VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

Ein Thema von Alieze · begonnen am 2. Feb 2015 · letzter Beitrag vom 3. Feb 2015
Antwort Antwort
Seite 1 von 2  1 2      
Alieze

Registriert seit: 30. Jan 2015
Ort: Köln
11 Beiträge
 
Delphi XE7 Architect
 
#1

VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 2. Feb 2015, 21:37
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. ) 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.
Tim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.119 Beiträge
 
Delphi 12 Athens
 
#2

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 2. Feb 2015, 22:14
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).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 3. Feb 2015, 08:11
Wenn man das kaum glauben mag ist das durchaus berechtigt. Dass man aus der schwammigen Formulierung
Zitat:
Add a TClientSocket object to a form or data module to turn an application into a TCP/IP Client
sich nicht gleich bastelt "Das hier ist ein uraltes Relikt aus Windows 3.1-Zeiten das über irgendwelche obskuren "Messages" realisiert wird" kann man einem sicher keinen Vorwurf machen.

Ich fände mir von einem "Man mag es ja kaum glauben, ..." doch ziemlich auf die Füße getreten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.119 Beiträge
 
Delphi 12 Athens
 
#4

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 3. Feb 2015, 09:01
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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 3. Feb 2015, 09:06
Messages, WM_USER und in TCustomWinSocket die vielen Message-Events, hätten einen schon etwas stutzig machen können.
Nicht wenn man ein "peinliches Anfängerproblem" hat. Denn dann versteht man auch bei einem "WM_USER" nur Bahnhof und fragt lieber in einem Internetforum nach.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.119 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 3. Feb 2015, 09:36
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 3. Feb 2015, 09:49
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.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 3. Feb 2015, 11:53
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.
Schreib mal ob Du dazu was findest, sonst müßte ich mich dann auch mal aufmachen um heraus zu bekommen wie mann eine Messageloop ordentlich implemantiert.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.119 Beiträge
 
Delphi 12 Athens
 
#9

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 3. Feb 2015, 12:39
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?)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.539 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: VCL-Server mit Konsolen-Clienten verbinden. - (Peinliches) Anfänger Problem.

  Alt 3. Feb 2015, 12:59
TTimer erzeugt einfach sein eigenes Windowhandle.
Zitat:
Delphi-Quellcode:
constructor TTimer.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FEnabled := True;
  FInterval := 1000;
  FWindowHandle := AllocateHWnd(WndProc);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 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