Diferencia entre revisiones de «Programación de comunicacións en rede con Java»
| Línea 33: | Línea 33: | ||
Na táboa explicanse alguns dos métodos de NetworkInterface. | Na táboa explicanse alguns dos métodos de NetworkInterface. | ||
| − | A | + | Métodos de la claseNetworkInterface |
| + | ! Método | ||
| + | ! Funcionalidade | ||
| + | |- | ||
| + | | static Enumeration<NetworkInterface> getNetworkInterfaces() | ||
| + | | Devolve todas as interfaces de rede existentes na máquina. A partir do Enumeration | ||
| + | pódese obter un Iterator para iterar sobre elas. | ||
| + | |- | ||
| + | |String getDisplayName() <br/> String getName() | ||
| + | | Devuelven o nome da interfaz | ||
| + | |- | ||
| + | | byte[] getHardwareAddress() | ||
| + | | Devolve o enderezo MAC en forma de array de 6 bytes (48 bits). | ||
| + | |- | ||
| + | |Enumeration<InetAddress> getInetAddresses() <br/> List<InterfaceAddress> getInterfaceAddresses() | ||
| + | Devolven os enderezos IP asociados á interfaz. Será en xeral cando menos un enderezo IPv4 e un IPv6. | ||
| + | <br/> Un obxecto InterfaceAddress proporciona máis información que InetAddress (por exemplo a | ||
| + | lonxitude da máscara de rede e o enderezo de broadcast para a redhe á que pertence a interfaz (para IPv4). | ||
| + | |- | ||
| + | | boolean isLoopback() | ||
| + | | Determina se unha interfaz é de tipo loopback. | ||
| + | |- | ||
| + | |||
| + | O exemplo permitirache familiarizarte co entorno de rede no que está integrado o teu ordenador; o coñecemento poderá ser de utilidade para crear programas que se comuniquen con outros desenvoltos por outros compañeiros, utilizando os protocolos de transporte UDP e TCP. | ||
| + | |||
| + | == Exemplo con programa que amosa información das interfaces de rede == | ||
| + | Aquí está o código dun programa que amosa información de todas as interfaces de rede presentes no sistema. | ||
| + | |||
| + | Amosa información da súa configuración para IPv4 e IPv6 (enderezos IP, máscaras de rede, enderezos de broadcast, etc). | ||
| + | |||
| + | '''Cuestións'''. Antes de executar o programa asegúrate de que o equipo ten conexión a internet ou a unha rede local. | ||
| + | ¿En qué cambia a saída do programa cando se desconecta o cable de rede ou se desactiva a interfaz de rede desde o sistema operativo? | ||
| + | ¿Para qué tipos de interfaces se amosa información? | ||
| + | ¿Hay alguna que esté sempre activa? ¿Cal? ¿Por qué? | ||
= Enderezos IP = | = Enderezos IP = | ||
Revisión del 12:25 23 sep 2021
Sumario
Comunicaciones en rede
O paquete java.net proporciona clases que permiten levar a cabo comunicaciíns entre procesos utilizando os protocolos estándares da familia de TCP/IP. Pode dividirse en dúas seccións:
- Clases de baixo nivel que permiten representar as principales entidades dos niveles de enlace, rede e transporte;
- Clases de alto nivel relacionadas con protocolos de nivel de aplicación
Comezaremos revisando as clases para interfaces de rede e enderezos IP, para despois progresar en algocentral nas comunicacións en rede: a programación de sockets de UDP e de TCP, cos que se desenvolverán programas servidores e clientes que se comunican utilizando os devanditos protocolos de transporte UDP e TCP; e que se pode considerar que implementan sencillos protocolos de nivel de aplicación.
| Interfaces de rede | NetworkInterface: interfaz de rede |
| Enderezos IP | InetAddress: enderezo IP Inet4Address: enderezo IPv Inet6Address: enderezo IPv6 InterfaceAddress:enderezo IP máis información relativa á rede á que pertenece a interfaz |
| Sockets | Socket: socket TCP de cliente, para conectar cun proceso servidor mediante TCP ServerSocket: socket TCP de servidor, que acepta conexións desde un socket de cliente mediante TCP. DatagramSocket: socket de UDP, que se usa para enviar e recibir datagramas de UDP |
Interfaces de rede
As interfaces de red presentes no sistema podense amosar cos comandos:
- ifconfig ou ip en Linux
- ipconfig en Windows.
A clase NetworkInterface ten métodos estáticos que permiten obter unha enumeración de todas as interfaces de rede ou NetworkInterface existentes no sistema.
Una NetworkInterface pode ter máis dunha configuración IP asociada,e normalmente cando menos unha para IPv4 e outra para IPv6. Con distintos métodos da clase podense obter para cada unha obxectos de tipo InterfaceAddress e InetAddress.
A clase InterfaceAddress proporciona información adicional a InetAddress coma por exemplo a lonxitude da máscara de rede ou o enderezo de broadcast da rede á que pertence (para un enderezo IPv4).
Na táboa explicanse alguns dos métodos de NetworkInterface.
Métodos de la claseNetworkInterface
! Método ! Funcionalidade |- | static Enumeration<NetworkInterface> getNetworkInterfaces() | Devolve todas as interfaces de rede existentes na máquina. A partir do Enumeration
pódese obter un Iterator para iterar sobre elas.
|-
|String getDisplayName()
String getName()
| Devuelven o nome da interfaz
|-
| byte[] getHardwareAddress()
| Devolve o enderezo MAC en forma de array de 6 bytes (48 bits).
|-
|Enumeration<InetAddress> getInetAddresses()
List<InterfaceAddress> getInterfaceAddresses()
Devolven os enderezos IP asociados á interfaz. Será en xeral cando menos un enderezo IPv4 e un IPv6.
Un obxecto InterfaceAddress proporciona máis información que InetAddress (por exemplo a
lonxitude da máscara de rede e o enderezo de broadcast para a redhe á que pertence a interfaz (para IPv4).
|-
| boolean isLoopback()
| Determina se unha interfaz é de tipo loopback.
|-
O exemplo permitirache familiarizarte co entorno de rede no que está integrado o teu ordenador; o coñecemento poderá ser de utilidade para crear programas que se comuniquen con outros desenvoltos por outros compañeiros, utilizando os protocolos de transporte UDP e TCP.
Exemplo con programa que amosa información das interfaces de rede
Aquí está o código dun programa que amosa información de todas as interfaces de rede presentes no sistema.
Amosa información da súa configuración para IPv4 e IPv6 (enderezos IP, máscaras de rede, enderezos de broadcast, etc).
Cuestións. Antes de executar o programa asegúrate de que o equipo ten conexión a internet ou a unha rede local. ¿En qué cambia a saída do programa cando se desconecta o cable de rede ou se desactiva a interfaz de rede desde o sistema operativo? ¿Para qué tipos de interfaces se amosa información? ¿Hay alguna que esté sempre activa? ¿Cal? ¿Por qué?