Toon posts:

[Alg] Meerdere addressen aan een socket binden

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe koppel ik meerdere IP adressen aan een socket. Ik weet dat ik met INADDR_ANY alle adressen kan binden, maar ik wil zelf een lijst kunnen opgeven. Meerdere keren binden aan een bestaande socket levert een foutmelding "invalid argument". Kan ik uberhaupt meerdere adressen koppelen aan een socket (zo ja, hoe?) of moet ik gewoon meerdere sockets openen?

[ Voor 3% gewijzigd door Verwijderd op 08-04-2004 19:14 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:32
Een socket is een combinatie IP adres & poort.
Je kan afaik dus niet meerdere ip adressen aan één socket binden.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 08 april 2004 @ 19:14:
Een socket is een combinatie IP adres & poort.
Je kan afaik dus niet meerdere ip adressen aan één socket binden.
M.a.w, als ik dus een server wil maken die alleen aan bijvoorbeeld 127.0.0.1 en aan 10.0.0.1 bind en eventuele andere devices met andere IP adressen niet, dan moet ik dus 2 sockets maken en ze afzonderlijk binden aan 1 van de IP adressen. Juist?

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Waarom aan meerderen binden? :?

Verwijderd

Topicstarter
questa schreef op 08 april 2004 @ 20:06:
Waarom aan meerderen binden? :?
Omdat ik ivm beveiliging op wil kunnen geven naar welke devices mijn daemon wel en naar welke devices hij niet moet luisteren naar binnenkomende connecties. Dat moet via het meegeven van het ip adres van de device.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Maar dan hoef je toch niet twee sockets te binden aan een. Of snap ik het nu even niet?

Verwijderd

Topicstarter
questa schreef op 08 april 2004 @ 20:13:
Maar dan hoef je toch niet twee sockets te binden aan een. Of snap ik het nu even niet?
Nee. Maar stel ik heb eth0 (internet), eth1 (LAN), lo, en ppp0 (vpn). Ik wil een daemon naar allle binnenkomende requests laten luisteren behalve die van ppp0. Hoedoekdah?

Ik heb nu dat ik maar meerdere sockets aanmaak. Per IP adres (adres van een device) een socket en binden aan dat adres. Via select() kan ik ze tegelijk afhandelen. Het werkt, maar 1 socket was makkelijker geweest.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:03

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je moet dan idd meerdere sockets aanmaken

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Je zou ook nadat je een accept hebt gedaan kunnen kijken waar de verbinding eigenlijk vandaan en naartoe gaat. En vervolgens de verbinding verbreken wanneer deze niet toegelaten is. Het is niet zo'n mooie oplossing, maar heeft wel als voordeel dat je dan maar met één master socket hoeft te werken.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Je moet toch inderdaat met meerde sockets blijven werken.
Pagina: 1