[BC++B5] Socket op andere adapter.

Pagina: 1
Acties:

  • ADJVooDoo
  • Registratie: Januari 2001
  • Laatst online: 27-06 13:20
In Borland C++ Builder 5 ben ik een netwerk/internet applicatie aan het maken. Nu hebben sommige PC twee netwerk adapters. Een PPP ding voor internet en een gewone ethernet kaart. Of twee ethernet kaarten.

Hoe kan ik in een TServerSocket in Borland C de ethernet kaart kiezen?
En hoe kan ik een lijst van de IPs die elke adapter gebruikt opvragen in het programma.

Alvast bedankt voor enige reacties.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Nou weet ik niet hoe TServerSocket *precies* werkt, maar iha geef je bij een [server] socket aan op welk IP adres die moet zitten. INADDR_ANY / 0.0.0.0 betekent ANY ip dus alle netwerk kaarten+modems+etc. Een expliciet adres geeft aan dat je alleen die adapter wil gebruiken die dat IP adres heeft.
Je kunt niet fatsoenlijk opvragen welke adapter welk IP adres heeft; hoe wou je ze noemen? Wie is eth0 en wie eth1 ? En wat heeft de gebruiker eraan? Als je daarentegen weet te melden dat een IP adres LAN is ( want 10.x.x.x of 192.168.0.0 ) en een ander Internet (want public range ), dan kan de gebruiker zinniger kiezen. Evengoed weet ik zo uit m'n hhofd effe niet hoe je IP addressen enumereert. MSDN heeft de WinSock DLL docs die dit wel uitleggen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • ADJVooDoo
  • Registratie: Januari 2001
  • Laatst online: 27-06 13:20
Bedankt. Nu kan ik weer verder.
Het probleem is nog hoe ik een lijst met IP adressen kan opvragen. Zal dan wel met de WinSock dll moeten. Kijk wel even op MSDN.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:45

Creepy

Tactical Espionage Splatterer

Kijk ff naar de IPHelper API. M.b.v. deze api kan je al je adapter opvragen, wat voor type ze zijn, welk IP adres ze hebben e.d..

Overigens is het niet zo dat 0.0.0.0 niet al je adapters zijn, maar dat je IP pakket over je default route naar buiten gaat?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
Creepy schreef op 05 augustus 2002 @ 09:59:
Kijk ff naar de IPHelper API. M.b.v. deze api kan je al je adapter opvragen, wat voor type ze zijn, welk IP adres ze hebben e.d..

Overigens is het niet zo dat 0.0.0.0 niet al je adapters zijn, maar dat je IP pakket over je default route naar buiten gaat?
We hadden het over server sockets, dat zijn heel andere beesten - die sturen geen packets maar maken "gewone sockets" als er iemand connect.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 10:45

Creepy

Tactical Espionage Splatterer

Eehh... op het moment dat je m.b.v. een socket gaat communiceren m.b.v. TCP/IP dan worden er toch pakketten verzonden? Hoe dat pakket verzonden wordt (of beter, over welke route, en daarmee ook over welke interface) wordt toch bepaald a.d.v. het source en destination adres?

Een socket wordt gebruikt voor het opzetten van de communicatie, en op het moment dat dat m.b.v. IP gaat (kan je trouwens sockets aanmaken die NIET met IP communiceren?), dan wordt je IP pakket verzonden a.d.v. het source en destination IP. En dan zorgt het OS er wel voor dat deze over de goede route, en daarmee over de goede interface gaat.

zie ook http://www4.ulpgc.es/tuto...p/pru/3376c210.htm#sokapi

edit:
En daarbij vraag ik me dus af dat als je een listening socket bind aan 0.0.0.0 dat ie dan automatisch is gebind aan alle interfaces

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1