Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

05.10.2008, 19:30

Eigene Internet IP herausfinden Delphi/C++

Wie kann ich mit Delphi/C++ meine eigene Internet IP herausfinden?
Bei Delphi benutze ich die Sockets (dclsockets90.dbl).

Wofür ich das brauche :
Ich möchte ein Chatprogramm mit Sockets schreiben. Einen Server habe ich erstellt und es können andere PC's als Clients dem Server was zu schicken. Nun soll der Server den Clients was schicken können, was aber ohne der Inernet IP der Clients nicht geht. (Falls es einen anderen Weg gibt, bitte gleich bescheid sagen).

Anonymous

unregistriert

2

05.10.2008, 19:39

Einfache Antwort: Gar nicht. Du hast lokal nie die Möglichkeit deine Internet-IP rauszubekommen. Erst wenn du auf einen anderen Server zugreifst, kann dir dieser deine IP, mit der du auf ihn zugegriffen hast, wiedergeben.

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

3

05.10.2008, 19:55

Ergänzend dazu:
Du kannst nur die IP Adressen deiner Netzwerkadapter feststellen. Aber diese sind fast nie die IP Adressen mit denen du auf das Internet zugreifst. Meistens hängt da noch ein Router dazwischen, bei manchen Leuten ein Tunnel, o.Ä. Es gibt viele Möglichkeiten wie man ins Internet kommt und die IP Adresse mit der dies geschieht kannst du wie ulong gesagt hat nicht lokal feststellen.
Musst du aber auch nicht, da der Server deine IP Adresse gesendet bekommt sobald du eine Verbindung zu ihm aufbaust.

4

05.10.2008, 19:56

Ok auch nicht schlimm^^

Ich hab jetzt einen Server erstellt und er ist online. Jetzt connected sich jemand da drauf und er schickt mir Nachrichten/Texte. Nun soll der Server ihm antworten schicken. Wie bekomm ich die IP des Clienten heraus um diesen dann ebenfalls was zu schicken?

Aussehen soll das ganze in etwa so:
Es gibt einen Master-Server und n-Clients. Client Nummer1 sendet einen Nachricht an den Master-Server. Nun muss der Master-Server an alle Clients diese Nachrichten schicken. (So wie ein großer Chatraum. Wenn jemand was schreibt, sehen es ALLE).
Der Server muss jetzt nur noch wissen, welche ip die connecteten clients haben.

5

05.10.2008, 19:59

Nutze TCP, die Chatclients verbinden sich mit dem Server und beide Seiten koennen sich nun unterhalten. Der Server muss die IP des Clients nicht kennen (er kann sie aber herausfinden), wird alles durch das Betriebssystem gekapselt.

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

6

05.10.2008, 20:00

Ich kenne die Delphi API für Sockets nicht, aber vielleicht hilft dir diese Einführung in das Thema: http://www.informatik-treff.de/materialien/sek_ii/clientserver/main.html

Für soetwas "wie einen großen Chatraum" würde ich ebenfalls TCP empfehlen, das erspart dir einiges an Arbeit.

7

05.10.2008, 20:04

So sieht des bei mir aus wenn ich den Server öffne:

Quellcode

1
2
3
Socket := TServerSocket.Create(Form1);
Socket.Port := 10024;
Socket.Open;



Um eine TCP verbindung zu bekommen muss ich dann alles umschreiben?

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

8

05.10.2008, 20:06

Ich kann mich nur wiederholen und dir das Lesen des Links empfehlen:
http://www.informatik-treff.de/materialien/sek_ii/clientserver/main.html

Dort wird erklärt wie eine Server-Client Anwendung in Delphi entwickelt wird. Das sollte dir eigentlich alle Fragen beantworten.

9

05.10.2008, 20:12

Ok, danke für die schnelle hilfe!!
Bin dann proggi neu schreiben...

Werbeanzeige