Se vincular um soquete em Python ao localhost,8200, isso será acessível viahttp://localhost:8200/. mas nãohttp://xxxx:8200/
Se vincular um soquete em Python a xxxx,8200, machinename,8200, isso poderá ser acessado viahttp://xxxx:8200/ehttp://nome da máquina:8200/, mas nãohttp://localhost:8200/
Achei que localhost significava 'esta máquina' e que usá-lo faria um 'loop de volta' para o endereço IP da máquina, mas parece ser IPs diferentes.
127.0.0.1 é sempre um endereço IP diferente do endereço IP das máquinas?
atualizar:
Entendo que os números reais são diferentes, mas o que o loopback faz?
Por exemploWikipédiadiz que
'apontando um navegador para as URLshttp://127.0.0.1/ouhttp://localhost/acessará o próprio site desse computador'
mas esse site também estará acessível em xxxx e, presumivelmente, será configurado com um único soquete em xxxx. Então, como funcionam as duas referências?
conclusão:
Acho que finalmente entendi que 127.0.0.1 e xxxx funcionam assim
--127.0.0.1 ==\
>- Computer
--x.x.x.x ==/
e não
--127.0.0.1 ==\
--------------- x.x.x.x >- Computer
ou
--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer
Obrigado a todos pela ajuda
Responder1
Para responder à sua pergunta.
127.0.0.1 não é apenas um endereço IP diferente do endereço IP da máquina, é também uma interface diferente. 127.0.0.1 não deve ser visto na rede local. É um endereço IP interno especial para o adaptador de loopback.
xxxx será sua placa Ethernet.
a propósito, 'localhost' é simplesmente uma entrada no seu arquivo hosts que aponta para 127.0.0.1
Se você vincular um soquete a 127.0.0.1:8200, apenas os clientes executando localmente poderão acessá-lo e somente comhttp://127.0.0.1:8200ouhttp://localhost:8200(ou uma entrada de arquivo DNS ou hosts que aponta para 127.0.0.1).
Um soquete vinculado a xxxx:8200 só estará disponível atravéshttp://xxxx:8200ou uma entrada de arquivo DNS ou hosts que aponta para isso.
Vincular um soquete a 127.0.0.1 também não o disponibiliza automaticamente na interface Ethernet.
É por isso que você não consegue se conectar a xxxx:8200
Você pode vincular a porta 8200 a todas as interfaces disponíveis (0.0.0.0), então deve funcionar.
Outros recursos do adaptador de loopback:
A interface de loopback é uma interface virtual. Geralmente é usado para permitir que programas se comuniquem entre si na mesma máquina. Não é uma forma de fazer referência ao endereço IP da máquina. 127.0.0.1 É o endereço IP do adaptador virtual de loopback.
A outra coisa sobre o adaptador de loopback é que, por ser virtual, ele não passa nenhum pacote para a placa de rede.
Responder2
Por exemplo, a Wikipedia diz que 'apontar um navegador para os URLshttp://127.0.0.1/ouhttp://localhost/acessará o próprio site desse computador'
Um pouco impreciso. Istopoderiafaça isso. Da mesma forma, pode não exibir nenhum site e é até possível exibir um site interno diferente daquele que você obtém quando usa seu endereço xxxx.
127.0.0.1 aponta para sua própria máquina, mas isso não significa que ele se comportará da mesma maneira quando chegar à sua máquina
Se você quiser uma analogia não técnica, pode considerá-las portas diferentes para sua casa.
Ambos apontam para a mesma casa, mas não são a mesma coisa. É possível que cada porta leve você para a mesma sala ou elas podem levá-lo para uma sala diferente. Também é possível trancar uma porta e não a outra.
Ao configurar um site, você especifica quais endereços vincular e muitas vezes a resposta é todos os endereços. (Isso equivale a ter todas as portas levando você para uma sala)
Você também pode especificar o site para vincular apenas um endereço. (Isso equivale a trancar todas as portas, exceto uma.)
Se você tiver dois (ou mais) sites, poderá vinculá-los a endereços separados. (Isso equivale a ter cada porta entrando em salas separadas).
Um exemplo de como ambas as referências funcionam, meu computador com Windows 7 tem o IIS instalado, quando entro no Gerenciador do IIS e clico com o botão direito no site padrão, aparece a opção de menu 'Editar vinculações'. Selecionar isso abre uma lista de ligações. Eu tenho apenas um, mas para endereço IP ele tem * o que significa que o IIS escuta todos os meus endereços IP.
Responder3
Cada endereço IP no sistema é independente e pode ser vinculado por soquetes separadamente, com exceção do endereço especial 0.0.0.0 que indica ao sistema operacional para vincular o soquete a todas as interfaces.