Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TClientServer verbindet nicht!? (https://www.delphipraxis.net/29189-tclientserver-verbindet-nicht.html)

Aenogym 5. Sep 2004 12:26


TClientServer verbindet nicht!?
 
hi ihr,

ich habe auf meinem rechner einen TServerSocket laufen. er funktioniert ohne probleme. wenn ich allerdings nun das client-programm starte und den TClientSocket öffne, aktiviert er sich schlicht und einfach nicht.
ich habe schon meinen ganzen code mit breakpoints zugekleistert, um zu schauen, ob irgendwo die adresse und/oder der port nicht gesetzt wird, aber fehlanzeige.

der server läuft auf meinem rechner auf port 44044. dann starte ich hier am selben rechner den clienten. clientsocket-adresse ist '127.0.0.1' und port natürlich auch auf 44044. beim aufruf von clientsocket.open; oder clientsocket.active:=true; passiert nichts, d.h. die eigenschaft active ist sofort danach wieder auf false.

ich bekomme keine fehlermeldung oder so. einfach garnichts. vorher ging es noch ohne probleme, jetzt hab ich ein paar dinge neugecodet und er verbindet nciht mehr. aber da adresse und port gesetzt sind, sollte er doch fehlerfrei verbinden, zumal ich keine Exception o.ä. bekomme....

woran könnte das liegen?

dankbar für jede antwort,
Aenogym

stefan2005 5. Sep 2004 15:26

Re: TClientServer verbindet nicht!?
 
Hi,
also wenn du wirklich alles richtig gesetzt hast (Port,IP des Hostes/Server geöffnet) dann könnte es vielleicht sein dass die Pakete von einer Firewall blockiert werden (war bei mir mal der Fall)!

cu,
stefan2005

Aenogym 5. Sep 2004 15:28

Re: TClientServer verbindet nicht!?
 
hi,

nein, ich habe gerade nochmal geschaut. der client sowie der server haben uneingeschränkten zugriff.

ich kann mir das echt nicht erklären :(

Aenogym

stefan2005 5. Sep 2004 15:36

Re: TClientServer verbindet nicht!?
 
Hi,
vielleicht könntest du ein wenig (den für dieses Problem wichtigen) Code posten, da sonst eine Hilfe schwer werden könnte und vielleicht irgendwo ein Leichtsinnsfehler sich versteckt hat, den man selber meist überliest :wink:

Probier mal einen anderen Port und bei Host vielleicht "localhost" !

Auch könntest du bei den Events z.B. bei OnConnect oder OnError eine MessageBox aufrufen, damit du siehst, wie weit der Code ausgeführt wird und es zu welchen Events kommt !

cu,
stefan2005

Aenogym 5. Sep 2004 18:24

Re: TClientServer verbindet nicht!?
 
hi,

ich hab mal nen halbstündigen debug-durchlauf gemacht und wirklich jede einzelne aktion beider programme (client und server) beobachtet:

beim aufruf von clientsocket.open; wird beim server das OnClientConnect-Event ausgelöst. sofort darauf steht die eigenschaft clientsocket.active auf false - demnach kann der client keine daten an den server senden.
wenn der server aber nun daten an den clienten sendet, reagiert der client auch richtig darauf.

ist das nicht komisch? :shock:

hier mein (zerstückelter) connect-code:

Delphi-Quellcode:
begin
  if clientsocket1.active then
    exit;

  //prüfen, ob server schon angegeben wurde
  //...

  //usernamen & pw aus edits lesen
  //...

  //socket einstellen und verbinden
  clientsocket1.Address := 'localhost'; //127.0.0.1
  clientsocket1.port   := 44044;
  ClientSocket1.Open;      //ClientSocket1.Active := true;

  //pw abrufen
  check_pw := clientsocket1.socket.sendtext('getuserpw|Aenogym');
  //wenn diese nachricht am server ankommt, sucht er das passwort des benutzers
  //und sendet es zurück zum clienten. leider kommt die nachricht nie an, da active:=false

  //md5 aus passwort generieren
  pw := md5print(md5string(pw));

  //pw's vergleichen
  if pw <> check_pw then
  begin
    showmessage('Falsches Passwort');
    exit;
  end
  else
  begin
    //kontakliste abrufen
    //hier wird wieder per sendText() etwas an den server geschickt

    if clientsocket1.active then
      showmessage('Aktiv');
  end;
end;
ich habe es schon geschafft, dass wenn der server nicht gestartet ist, wieder die normale Exception kommt (socket error 10060).
anscheinend ist der client auch mit dem server verbunden (vorausgesetzt, dieser ist gestartet ;) ). allerdings kann der client keine daten senden, da active immer false ist...

ich kanns mir nicht erklären,
Aenogym

stefan2005 5. Sep 2004 19:04

Re: TClientServer verbindet nicht!?
 
Hi,
also hast "ClientSocket1.Address := 'localhost';"
ich wusste gar ned dass das geht (oder auch nicht) :wink:

probier anstatt diesem mal dies hier:
Code:
ClientSocket1.Host := 'localhost';
ich hoffe ich konnte dir helfen :wink:
cu,
stefan2005

Aenogym 5. Sep 2004 19:18

Re: TClientServer verbindet nicht!?
 
ups,

war ein fehler, als ich meinen code zerstückelt hab :) ich hab, wenn ich localhost angegeben habe, natürlich die host-variable genutzt. aber da liegt ja nicht das problem. :(

mein client verbindet richtig und kann auch ordnungsgemäß daten empfangen. leider steht clientsocket1.active immer auf false, egal was ich anstelle. und solange die fals eist, kann der client keine daten senden :cry:

ja, du hast mir schon soweit geholfen, dass ich eine fast funktionierende verbindung aufbauen kann :thumb:

nachtrag: ich habe nur mal so zum spaß folgendes in den cod emit rein geschrieben:

Delphi-Quellcode:
while clientsocket1.active=false do
begin
  clientsocket1.active := true;
  clientsocket1.open;
end;
...endlosschleife... :cry:

danke,
Aenogym

stefan2005 5. Sep 2004 20:09

Re: TClientServer verbindet nicht!?
 
Hi,
also schon sehr sehr komisch !
Da kann ich dir auch nimmer weiterhelfen.

Vielleicht probierst du ja mal das Client/Server Programm auf einem anderen PC aus.
Könnt ja sein dass dein PC nicht mag :wink:

cu,
stefan2005

Aenogym 5. Sep 2004 20:12

Re: TClientServer verbindet nicht!?
 
Zitat:

Zitat von stefan2005
also schon sehr sehr komisch !
Da kann ich dir auch nimmer weiterhelfen.

danke trotzdem soweit. ich kann's mir auch nicht erklären, zumal es vor einer woche noch ging.

(da is man mal ne woche nicht an der kiste und schon läuft nix mehr... ;) )

Aenogym

Manzoni 5. Sep 2004 22:00

Re: TClientServer verbindet nicht!?
 
Poste doch noch ein wenig code vom server, evtl. liegt ja da der fehler, dass du die verbindung vom server her schließt? :?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 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