AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IdTCPClient <> IdTCPServer: Verbindungsproblem
Thema durchsuchen
Ansicht
Themen-Optionen

IdTCPClient <> IdTCPServer: Verbindungsproblem

Offene Frage von "Z4ppy"
Ein Thema von Z4ppy · begonnen am 16. Sep 2008 · letzter Beitrag vom 2. Okt 2008
Antwort Antwort
Seite 1 von 3  1 23      
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#1

IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 16. Sep 2008, 23:02
Das ganze ist jetzt etwas kompliziert, aber ich hoffe, dass ihr das versteht

Ich entwickle gerade ein Chatprogramm, das ohne Server auskommen soll.
Allerdings hab ich keine Lust, 2 unterschiedliche Programme zu machen, die dann jeder besitzen muss... Also mach ich eins, das einen IdTCPClient und einen IdTCPServer enthält.
Als Chatter geb ich meinem Gegenüber meine IP und der verbindet sich zu mir (mittels IdTCPClient). (Später werd ich das vllt. mit nem Server mit MySQL-Datenbank oder so lösen) Nach dem Aufbau der Verbindung wird der Nick übermittelt. Diesen Nick fängt der Server ab, holt sich die IP der Verbindung, gibt sie meinem IdTCPClient und der versucht, sich zum Gegenüber verbinden.
Nun schlägt das aber fehl. Das Gegenüber stellt zu mir eine Verbindung her, ich krieg die IP, aber die Gegenverbindung geht net.

Wenn ich das ganze mit 127.0.0.1 als IP durchführe, erscheint der Fehler auch - es kann also weder am Router, noch an der Firewall liegen - aber woran dann?

Hier noch paar Quellcodeausschnitte:

Klick auf den Connect-Button:
Delphi-Quellcode:
    IdTCPClient1.Host:=IPEdit.Text;
    try
      IdTCPClient1.Connect();
      IdTCPClient1.WriteLn(Chr(255)+'+'+OwnNick);
    except
      Messages.Lines.Add('['+TimeToStr(Time)+'] Error on connecting with '+IPEdit.Text);
      exit;
    end;
Abfangen der Nachricht Chr(255)+'+'+OwnNick:
Delphi-Quellcode:
{in IdTCPServer.Execute}
  //der variable str wurde bereits die nachricht zugeordnet
  if(str[1]=Chr(255)) then begin
    if(str[2]='+') then begin
      Nick:=StrPart(str,3,Length(str)); //StrPart ist meine eigene Funktion ;)
      IdTCPClient1.Host:=AThread.Connection.Socket.Binding.PeerIP; //IP auslesen
      try
        IdTCPClient1.Connect();
      except
        begin
          Messages.Lines.Add('['+TimeToStr(Time)+'] '+Nick+' connected to you, but I can''t create a connection to him/her. :(');
          exit;
        end;
      end;
      Messages.Lines.Add('['+TimeToStr(Time)+'] '+Nick+' connected to you!');
      IdTCPClient1.WriteLn(Chr(255)+'n'+OwnNick);
    end;
  end;
Die Nachricht Chr(255)+'n'+OwnNick wird wiederum auf der Gegenseite ausgewertet, doch das ist nicht von Bedeutung, da dieser Befehl ja nie ausgeführt wird...

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 16. Sep 2008, 23:37
Hi,

Dir ist schon klar das Du über eine TIdTcpClient Verbindung auch Daten lesen kannst ?!

Zwar ist bei Deinem Ziel schon richtig TIdTcpClient und TIdTcpServer zu verwenden,
allerdings reicht eine Verbindung :

Client A zu Server B

oder

Client B zu Server A.

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 17. Sep 2008, 17:55
Tatsächlich? Hmm, da muss ich mich mal umgucken...

Trotzdem wird mir deshalb net klar, warum denn diese Verbindung nicht möglich ist

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 17. Sep 2008, 18:06
Wird die IP richtig ermittelt? Und was für eine Fehlermeldung kommt denn?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 17. Sep 2008, 18:08
Könnte es nicht sein, dass die Gegenverbindung nicht klappt, weil der Port schon belegt ist?
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#6

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 17. Sep 2008, 18:11
Was ist denn Messages? Ne Memobox? imho is das idTCPServer.execute ein extra Thread. Sämtliche Prozeduren, die auf dein Formular "malen" musst du daher mit dem Thread synchronisieren.
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 17. Sep 2008, 18:13
Zitat von alleinherrscher:
Was ist denn Messages? Ne Memobox? imho is das idTCPServer.execute ein extra Thread. Sämtliche Prozeduren, die auf dein Formular "malen" musst du daher mit dem Thread synchronisieren.
Musst Du nicht
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 17. Sep 2008, 18:21
@3_of_8: Ich hab mir die IP vom Gegenüber anzeigen lassen, die is korrekt (bei Verbindung zu 127.0.0.1 gibts dann auch 127.0.0.1 aus)

@Die Muhkuh: Tja, Client und Server verwenden natürlich denselben Port - ich empfang also eine Verbindung des Anderen auf Port X und versuch dann mit meinem Clienten, ne Verbindung über Port X zum Andern herzustellen - aber das sollte ja eigentlich keine Kollisionen geben, da die eine Verbindung ausgehend, die andere hereinkommend is...

@alleinherrscher: Messages is n TRichEdit... Da kommen halt dann alle Nachrichten rein Und auch solche Meldungen wie "can't connect to ..." usw.

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 17. Sep 2008, 18:54
Wenn ich das richtig sehe, hast du dann aber 2 Server auf einem PC die auf Port X lauschen wollen, das geht nicht.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: IdTCPClient <> IdTCPServer: Verbindungsproblem

  Alt 17. Sep 2008, 20:45
Nein, ich habe einen
Ich starte den Chat 1mal und gebe dann 127.0.0.1... Der Server im eigenen Programm erhält dann die Nachricht - ich hab also nur einen
Allerdings gibts da dann ne kollision, da ich den Host vom IdTCPClient ändern will (zumindest theoretisch) und dadurch iwie was schief läuft...
Aber das ändert nix daran, dass es via iNet net geht

MfG Z4ppy
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:43 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