Socket
Este é um conceito bastante interessante, vastamente utilizado no mundo do software, do hardware e das redes.
Estamos falando do Socket (em inglês), ou do “soquete”, em português.
Entretanto, é um conceito bem mais abrangente, a depender do ponto de vista, pois tudo que pluga-se a qualquer coisa, pode ser considerado um socket.
Podemos falar que “tomadas” são soquetes, conectores de processador em placa mãe também são (soquete de CPU) etc., mas aqui falaremos rapidamente sobre o socket no contexto das redes de computadores.
No mundo das redes, um socket é o fim da linha de uma comunicação entre hosts. E este fim da linha precisar ter todos os dados que o identificam, para que seu “endereço” não seja confundido com o de outro host.
Muitos acham que o IP é uma “chave primária – primary key” no mundo da comunicação via TCP/IP (aqui falamos de camada de rede [IP] e camada de transporte [TCP]), e não é o caso (para entender melhor os protocolos e as camadas do modelo OSI, vide o post correspondente).
A especificação do protocolo de rede e da porta são necessárias para definir o fim da linha de uma comunicação entre dois hosts.
/* Se considerássemos o MAC address poderíamos definí-lo como a primary key de uma tabela de um banco de dados, que nunca se repete. */
Concluindo
Então temos a combinação: PROTOCOLO://IP:PORTA. Algo como http://192.168.0.66:8080, onde o protocolo é o HTTP, o IP é o 192.168.0.66 e a porta é a 8080.
Basicamente, isso é um Socket de rede!