J'ai une configuration Windows avec plusieurs IP, et souhaite que mon script Rebol (sur Rebol/Core 2.78) fasse une liaison individuelle et écoute le même numéro de port sur chacune de ces adresses IP.Liaison Rebol 2 ports vers plusieurs IP
Jusqu'à très récemment, je pensais la syntaxe pour ce faire était:
Port1Test: open/lines tcp://:80 browse http://10.100.44.6?
Port2Test: open/lines tcp://:80 browse http://10.100.44.7?
Mais il se trouve la ligne Port2Test
échoue, comme la browse http://10.100.44.6?
partie est totalement ignorée (et maintenant la recherche, je ne trouve pas même où j'ai eu cette syntaxe en premier lieu).
lecture sur la documentation tout ce que je peux trouver sur la façon de spécifier un port d'écoute est comme ceci:
Port1Test: open/lines tcp://:80
Sonder le port Port1Test
révèle la plupart des paramètres définis à none
, et quelques fixés comme suit:
scheme: 'tcp
host: none
port-id: 80
local-ip: 0.0.0.0
local-port: 80
Je tenté de modifier ces valeurs comme ceci:
Port1Test: open/lines tcp://:80 ; Create port, as before. Then modify below
Port1Test/host: 10.100.44.6 ; Might this be the binding interface?
Port1Test/port-id: 1 ; I guess this is just an id?
Port1Test/local-ip: 10.100.44.6 ; This ought to be the binding interface.
Port2Test: open/lines tcp://:80 ; Create port, as before. Then modify below
Port2Test/host: 10.100.44.7 ; Might this be the binding interface?
Port2Test/port-id: 2 ; I guess this is just an id?
Port2Test/local-ip: 10.100.44.7 ; This ought to be the binding interface.
Malheureusement tous Variat les ions des modifications ci-dessus, y compris l'échange des valeurs IP pour Port1Test
et Port2Test
, échoue lors de la création de Port2Test
. :-(
Je suis sûr qu'il ya quelque chose que je donne sur, mais je ne peux pas trouver des conseils partout sur la façon d'initialiser un port alors qu'il se liant à une interface spécifique.
Les conseils très appréciés!
Edit:. La façon dont Rebol se lient à des interfaces est maintenant assez évident pour moi - mais comment le modifier il encore un mystère
Disons que j'ai deux (interfaces ==) de la propriété intellectuelle associée à une carte réseau: 10.100.1.1 d 10.100.1.2. Le 10.100.1.1:80 je configure une application Tomcat que je sais peut lier à cette interface spécifique. Ensuite, je lance une application REBOL, qui revendique également le port 80. Ils fonctionneront tous les deux avec bonheur, et chacun sera accessible sur une seule adresse IP, comme si l'application Rebol avait été liée à 10.100.1.2. Ensuite, j'ai arrêté l'application Tomcat, et tenter de le démarrer. Cela s'avère impossible, car l'interface est en cours d'utilisation. Et si j'accède aux deux adresses IP, il s'avère que l'application Rebol est accessible sur les deux adresses IP.
Ce n'est pas un mécanisme actif dans Rebol qui fonctionne ici, mais parce que Rebol réclame les interfaces 0.0.0.0 (Dans le contexte des serveurs, 0.0.0.0 signifie "toutes les adresses IPv4 sur la machine locale"), qui est traduit à toute interface actuellement disponible, et une réclamation différée aux interfaces dès qu'elles deviennent disponibles.
Ce serait vraiment bien de savoir comment changer l'interface par défaut de Rebols 0.0.0.0 à quelque chose d'autre au moment de la création du port!
Je me souviens que j'ai fait face à ce problème il y a quelques années et je n'ai pas trouvé de solution :( – endo64