Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Chat programmieren (https://www.delphipraxis.net/145371-chat-programmieren.html)

Ghostleader 30. Dez 2009 18:05


Chat programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe das Tutorial "Chat-Tutorial_1.1" hier gefunden und habe den Chat danach programmiert. Nun stehe ich vor einem Problem. (Die Suche, Google und andere Foren hab ich schon durchsucht aber keine für mich passende Antwort gefunden.)

Ich hab den Server und den Clienten geschrieben und es klappt auch alles. Allerdings wenn einer meiner Freunde den Clienten starten und versucht auf meine IP zu connecten, bekommt er den "Asynchronen Socket Fehler 10061".
Wenn sie dann den Server dazu starten (,den ich ihnen vorher nicht gegeben hatte,) geschieht nichts. (<- Also seine Nachrichten kommen bei mir nicht an.)

Wie kann ich hinbekommen das wir alle auf 1 Server connecten und wie über MSN oder ICQ zusammen chatten können?

Wäre über schnelle Hilfe sehr dankbar ;D,
mit freundlichen Grüßen Ghost!
(Ich war mir nicht sicher ob dieses Thema in diesen Bereich oder in den "Internet" Bereich gehört, bitte sagt mir bescheid wenn ihr es wisst.)


Edit:
Achja mein Client&Server:

Astat 30. Dez 2009 19:10

Re: Chat programmieren
 
Zitat:

Zitat von Ghostleader
Wie kann ich hinbekommen das wir alle auf 1 Server connecten und wie über MSN oder ICQ zusammen chatten können?

Hallo Ghostleader:

1. Ping versuchen
2. IP Adressrange mit Subnetmaske vergleichen (Bei Anderem Subnet brauchst ein Gateway)
3. Server auf Port 80 ändern, und versuchen mit Webbrowser zuzugreifen.
4. Port Ändern (80, 8088) und gegebenenfalls mit HTTP Header versehen.

Teste das mal alles durch, notier die IP's Subnetmasks und sag bescheid was da rauskommt.

lg. Astat

fui-tak 30. Dez 2009 19:41

Re: Chat programmieren
 
Das Problem ist wahrscheinlich, dass deine Freunde nicht direkt auf deinen Computer zugreifen können. Wenn sie deine Internet-IP eingeben, dann wird damit nur dein Router angesteuert. Da sollte dir das Stichwort Port Forwarding weiterhelfen. Du musst nämlich in deinen Router-Konfigurationen irgendwo einstellen, dass ein bestimmter Port an deinen Computer weitergeleitet wird.

Eine andere möglichkeit wäre ein LAN-Netzwerk zu simulieren. Da gibt's dieses für Privatuser kostenlose Programm "Hamachi". Jeder user muss sich registrieren und das Programm herunterladen. Dann bekommt man eine neue IP, die für das Hamachi-Netzwerk gilt. Diese IP müsst ihr dann im Chat in den Clients eingeben

Ghostleader 31. Dez 2009 16:40

Re: Chat programmieren
 
@Astat
Deine ersten beiden Punkte verstehe ich leider nicht was meinst du mit Ping und wie vergleicht man IP Adressrange mit der Subnetmaske.

@Fui-Tak
Kannst du mir vielleicht sagen wie das genau heißt damit ich das bei meiner Router Konfiguration besser finden kann?
Das mit Hamachi geht wahrscheinlich aber ich möchte das ja selber gemacht haben ;D.

Danke für die Antworten, mfg Ghost

Luckie 31. Dez 2009 16:45

Re: Chat programmieren
 
Guck in der Bedienungsanleitung zu deinem Router mal unter Portforwardinmg oder Portweiterleitung nach.

Astat 1. Jan 2010 02:09

Re: Chat programmieren
 
Zitat:

Zitat von Ghostleader
@Astat
Deine ersten beiden Punkte verstehe ich leider nicht was meinst du mit Ping und wie vergleicht man IP Adressrange mit der Subnetmaske.

Hallo Ghostleader, mit Ping hab ich gemeint, dass einer deiner Chat Kollegen(in) mal einen Ping zu Deinem (Server) Rechner versucht.
Start -> Ausführen -> cmd -> dann in die Konsole (schwarzes Fenster) ping IpAdresseDeinesServers Eintragen + Enter drücken.
http://de.wikipedia.org/wiki/Ping_(Daten%C3%BCbertragung)

Mit IP Adressrange mit der Subnetmaske, habe ich gemeint.

1. Ist die IP überhaupt eine Internetadresse oder Private IP
http://de.wikipedia.org/wiki/Private_IP-Adresse

2. Wenn Internet Adresse, dann mit der Subnet-Mask vergleichen, ob diese mit deinen Chat Kollegen(in) im Adressraum liegt.
http://searchnetworking.techtarget.c...213065,00.html
http://www.steines.de/network/routing.html

3. Wenn keine Internet Adresse, dann bist du über Router und oder Proxy mit dem Internet verbunden.
In diesem Falle, Gateway des Proxys und oder IP Forwarding des Routers checken.

lg. Astat

IceBube 1. Jan 2010 10:50

Re: Chat programmieren
 
Hallo!

Ich hab vor einiger Zeit auch einen Chat gemacht, und weil ich ebenso einen Router besitze, befasste ich mich auch mit Port-Forwading, leider kam ich da nicht wirklich weiter...

Ich entschied mich dann den Chat über eine Irc-Server zu machen Hier im Forum suchentalkbox. Auch einen Möglichkeit Hier im Forum suchenChat php

lg

fui-tak 1. Jan 2010 17:45

Re: Chat programmieren
 
Zitat:

Zitat von Ghostleader
@Fui-Tak
Kannst du mir vielleicht sagen wie das genau heißt damit ich das bei meiner Router Konfiguration besser finden kann?
Das mit Hamachi geht wahrscheinlich aber ich möchte das ja selber gemacht haben ;D.

Das mit der Portweiterleitung (Port Forwarding) hab ich selber nocht nicht gemacht. Also such einfach mal, wie Luckie schon sagte, in der Bedienungsanleitung des Routers oder tipp bei Google "Port Forwarding" zusammen mit der Bezeichnung deines Routers ein

Ghostleader 2. Jan 2010 22:03

Re: Chat programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
1.)
Danke an alle
2.)
@Aistat
Also zum Thema IP:
Ich hab mir meine IP mit der Komponente IdIPWatch anzeigen lassen und wenn ich dieselbe als IP für den Server angebe (also mit ServerSocket1.Host := EdIP.Text;) dann ensteht genaun das Problem was ich habe:

Wenn einer meiner Freunde versucht sich nur mit dem Chatclienten auf den Server mit meiner IP anzumelden dann bekommt er den Asynchronen 10061 Fehler.

Ich habe das mit der Subnetzmaske jetzt so gemacht:
cmd->ipconfg und dabei kommt raus:
Wenn meine IP 192.168.5.207 wäre dann ist meine Subnetzmaske ungefähr 255.255.255.0
Achja da steht noch die Standartgateaway-Nummer die der IP sehr ähnelt.

Vielleicht für euch noch nützlich:
Oben über den 3 Nummern steht noch der Name meines Internetsticks (Speedport ...)
Also das ist glaube ich die IP von meinem Stick.
Wenn ich auf die Seite wieistmeineip.de gehe bekomme ich nämlich eine ganz andere IP...

Das mit Ping hab ich bisher erst ausprobieren können, als mein PC ausgeschaltet war und dann haben alle 4 Tests nicht funktioniert.

3.)
@Icecube:
Dein Chat ist ja schon sehr, sehr professionel! Allerdings verstehe ich nicht wie du das mit "Irc-Server" meintest. Ich habe mal was von einem Irc-Chat gehört, aber das war ein Chat den man als Internet-Seite aufrufen konnte und nicht als Programm auf dem PC.

Edit: Ich kann bei meinem Router im Internet bei der Konfiguration:
-Ports weiterleiten
-Ports umleiten
-Ports öffnen
wobei hinter dem letzten ("Dynamisch") steht...

Im Anhang sind 3 Screenshots mit der Beschreibung meines Routers für alle 3 Optionen vielleicht könnt ihr mir helfen wo ich welche Ports freigeben muss...
Mfg Ghost

Ghostleader 3. Jan 2010 21:33

Re: Chat programmieren
 
Ping geht nicht für meine IPAdresse die ich benutze, aber für den Standartgateaway...

SirTwist 4. Jan 2010 01:32

Re: Chat programmieren
 
Ghostleader: Hast Du einen DSL-Router, über den Du ins Internet gehst oder wählst Du Dich direkt mit deinem PC ein? Bei einem DSL-Router hat Dein Rechner eine interne IP-Adresse, die üblicherweise mit 10.irgendwas oder 192.168.irgendwas anfängt. Nur der Router weiß, welche IP-Adresse Dein 'Zuhause' aus dem Internet hat. Der DSL-Router hat normalerweise zwei IP-Adressen, eine interne (eben wieder 10.irgendwas oder 192.168.irgendwas) und die externe, die ihm vom Provider zugewiesen wird.

Wenn Deine Freunde, die irgendwo draußen sitzen, auf Deinen Server zugreifen wollen, müssen sie die externe IP-Adresse des DSL-Routers angeben. Außerdem muss Dein Router wissen, dass eingehende Anfragen auf dem TCP-Port xyz an Deinen Rechner xyz weitergeleitet werden müssen. Dies musst Du an Deinem Router konfigurieren. Erst dann können Deine Freunde auf den bei Dir laufenden Server zugreifen. Der TCP-Port xyz ist abhängig von Deiner Chat-Anwendung.

IRC ist der Vater aller Chat-Programme, und es gibt im Internet Hunderte von IRC-Servern. Normalerweise benötigt man ein IRC-Programm, um sich mit diesen IRC-Servern zu verbinden, aber es gibt auch Webseiten, die einen solchen Client zur Verfügung stellen. Eines der bekanntesten Chat-Programme für Windows ist mIRC (www.mirc.com), das ist aber kostenpflichtig. Es gibt eine Erweiterung für den Firefox namens Chatzilla.

So, ich hoffe, das hilft etwas weiter. Und bitte: Standard schreibt sich mit 'd' am Ende, niemals mit 't'. Danke.

Gruß,
SirTwist

Edit: was soll ich mit einer dummen rar-Datei? JPG- oder PNG-Bilder sind schon ausreichend komprimiert und können direkt im Browser angezeigt werden.

Ghostleader 4. Jan 2010 10:16

Re: Chat programmieren
 
@Sir Twist
Vielen Dank für deine Antwort.
Als erstes zur rar-Datei: Ich hab 3 Screenshots und hab sie deswegen verpackt damit ich nicht alle einzelnd hochladen muss.

Diese externe IP, wo kann ich die herausfinden?! Ist das die IP die man auf "Wieistmeineip.de" findet?
Und zum Port: Ich denke ich muss also "Port weiterleiten" und so wie ich das jetzt verstanden habe, mit dem Port den ich bei dem Server-, und bei dem ClientSocket gewählt habe.
Ist das richtig?

Sorry für den/die Schreibfehler ;).
Ich hoffe ihr habt die Geduld mir noch einmal zu antworten!
MFG Ghost

Edit: Das mit den Ports klappt jetzt! Meine letze Frage ist eigentlich nur noch: Ist die externe IP die die ich mit ipconfig herausbekomme (auch wenn die 192.168 am Anfang hat) oder ist es die die ich auf Wieistmeineip.de finde? Und wenn es die 1.) Variante ist, was ist dann Wieistmeineip.de ?!?!

Edit2: Jetzt klappt das alles...Aber wie kann ich per Button eine neue Form öffnen...?

fui-tak 4. Jan 2010 14:38

Re: Chat programmieren
 
Schön das alles jetzt funktioniert. :bouncing4:

Wenn du neue Fragen hast, solltest du eigentlich einen neuen Thread erstellen.
Aber wo du schon gefragt hast: Ein anderes Formular kannst du anzeigen lassen mit Formularname.show;
Das Formular muss natürlich vorher schon existieren

Ghostleader 4. Jan 2010 18:19

Re: Chat programmieren
 
okay danke..


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz