Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Internetverbindung per CAsynchsocket

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.06.2006, 21:39 Uhr
~FreiherrEintritt
Gast


Um meine Internet-IP rauszufinden will ich per CAsynchsocket eine Verbindung (in diesem Fall "pop.gmx.net", 110) aufbauen und per .GetSocketName(...) die Nummer auslesen:
- InternetGetConnectedState(...) liefert 1 zurück
- socket.Create(110) wird erfolgreich ausgeführt
- Auslesen der LAN-IPs per gethostname(...) usw. funktioniert auch
- Sowohl Firewall als auch Router sind auf Durchlass geschaltet
aber:
socket.Connect(...) liefert FALSE zurück (auch bei anderen Servern, z.B. login.icq.com usw. die ja eigentlich im Listen-Modus sein müssten.
Hab ich irgendwas nicht bedacht, das für ne Verbindung benötigt wird?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.06.2006, 22:27 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi connect liefert false + WSAE_WOULDBLOCK oder so zurück, d.h da du asyncsocket benutzt würde connect blockieren, und daher macht er weiter, ob du eine erfolgreiche verbindung hast, merkst du wenn das OnConnect-Callback aufgerufen wird mit entsprechendem FehlerCode. Wenn du blockierende sockets willst (also das deine anwendung wartet beim connect bis er wirklich verbunden ist, dann musst du CSocket nehmen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.06.2006, 22:45 Uhr
~FreiherrEintritt
Gast


Danke, daran hats gelegen.
Aber: die Methode .GetSocketName(...) liefert mir wieder nur die LAN-IP. Wie komm ich an die Internet-IP? ist das überhaupt auf diese Weise möglich?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.06.2006, 09:32 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi, dadrüber nicht, GetPeerName liefert dir die des gegenübers. an deine richtige WAN-Ip kommst du so nicht ran wenn du hinter einem router sitzt, da hilft nur z.b http://checkip.dyndns.org anfragen und die ausgabe auswerten. (oder deinen router anfragen, normal gibt der auch nen status aus oder so
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: