AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Konsolenanwendung -> Socket Probleme
Thema durchsuchen
Ansicht
Themen-Optionen

Konsolenanwendung -> Socket Probleme

Ein Thema von Neutral General · begonnen am 13. Feb 2007 · letzter Beitrag vom 15. Feb 2007
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Konsolenanwendung -> Socket Probleme

  Alt 13. Feb 2007, 18:25
Hi,

Ich benutze grad die TServerSocket und TClientSocket Klassen. Habe hier ne Konsolenanwendung und das Problem ist folgendes: Es geht nicht

Ne im ernst.. Irgendwie kriege ich keine Verbindung zu stande
Was is denn das Problem ?

Delphi-Quellcode:
// Server
constructor TMyServerSocket.Create;
begin
  inherited Create;
  Server := TServerSocket.Create(nil);
  Server.OnClientConnect := OnConnect;
  Server.ServerType := stNonBlocking;
end;

function TMyServerSocket.Initialize: Boolean;
begin
  Result := false;
  FInit := false;
  try
    Server.Open;
    FInit := true;
  except
    Result := FInit;
  end;
end;

procedure TMyServerSocket.OnConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Writeln(Socket.LocalAddress + ' connected!');
end;

// Client

constructor TMyClientSocket.Create;
begin
  inherited Create;
  Client := TClientSocket.Create(nil);
end;

function TMyClientSocket.Connect: Boolean;
begin
  Client.Open;
  Result := Connected;
end;
Client Programm:

Delphi-Quellcode:
program Console_TCP_Client;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ClientClass;

var Client: TMyClientSocket;

begin
  Client := TMyClientSocket.Create;
  Client.Host := '127.0.0.1';
  Client.Port := 1234;
  
  readln;
   Client.Connect;
   if Client.Connected then
    Writeln('Connected');
  readln;
end.
Server Programm:

Delphi-Quellcode:
program Console_TCP;

{$APPTYPE CONSOLE}

uses
  SysUtils, ServerClass;

var Server: TMyServerSocket;

begin
 Server := TMyServerSocket.Create;
 Server.Port := 1234;
 Server.Initialize;
 readln;
 Server.Free;
end.
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Konsolenanwendung -> Socket Probleme

  Alt 13. Feb 2007, 23:39
Ich bin ziemlich müde und habe möglicherweise überhaupt nichts begriffen, aaaaber dennoch:

Im Client-Programm deklarierst du Client als TMyClientSocket und erzeugst es auch:
Delphi-Quellcode:
...
var Client: TMyClientSocket;

begin
  Client := TMyClientSocket.Create;
...
Im damit aufgerufenen Konstruktor erzeugst du es gleich nochmal als TClientSocket.
Delphi-Quellcode:
constructor TMyClientSocket.Create;
begin
  inherited Create;
  Client := TClientSocket.Create(nil);
end;
Soll das alles so sein? Oder ist Client gar ein Feld innerhalb von TMyClientSocket?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Konsolenanwendung -> Socket Probleme

  Alt 14. Feb 2007, 12:12
Jo Client im Constructor is eine Private Variable von TMyClientSocket. TMyClientSocket = class(TObject)...Also Client im Programm <> Client in der Client-Unit

Es wäre echt nett wenn sich das jemand mal angucken würde.. Ich häng einfach mal Server und Client dran.. Das kann ja alles nicht sein -.-

Gruß
Neutral General
Angehängte Dateien
Dateityp: rar tcp_console_390.rar (5,2 KB, 7x aufgerufen)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Konsolenanwendung -> Socket Probleme

  Alt 14. Feb 2007, 13:21
Zitat von Neutral General:
Jo Client im Constructor is eine Private Variable von TMyClientSocket.
... deren Bezeichnung man einem ungeschriebenen Gesetz zufolge mit "F" beginnen lassen sollte. Aber das nur nebenbei.

Ich kann rar nicht bearbeiten. Kanst du das noch irgendwie anders ranhängen?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Konsolenanwendung -> Socket Probleme

  Alt 14. Feb 2007, 13:26
Jo klar kann ich.. Ja benenne die eigentlich auch immer mit F[Name] aber ka...
Angehängte Dateien
Dateityp: zip tcp_console_530.zip (5,7 KB, 9x aufgerufen)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Konsolenanwendung -> Socket Probleme

  Alt 15. Feb 2007, 22:07
Du kannst nicht einfach connect aufrufen und dann sofort eine Verbindung erwarten. Die Socket Komponenten laufen mit einem Thread im Hintergrund und von daher kehrt der Aufruf zu "connect" direkt und sofort wieder zurück und erst beim auslösen eines Ereignisses ist der Socket wirklich verbunden. Du musst die Ereignisse des Sockets nutzen...
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:47 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