Redes Java

Olá pessoal,
Alguém pode indicar algo bom para trabalhar com redes em Java?

Abraços

Trabalhar com redes == Programação Cliente/Servidor?

Não, gerenciamento de tráfego via TCP/IP, específica para a rede mesmo

Isso seria interessante, mas creio que deveria-se importar alguma dll de acesso ao hardware.

Java NIO - Um pouco antigo, mas cobre bem a biblioteca de NIO, Sockets não bloqueantes, channels e selectors. Dá dicas legais também.
TCP/IP Sockets in Java - Já na segunda edição, esse livro é muito bom.

Lol? Acesso ao hardware? Nem que ele quisesse trabalhar com socket em modo promíscuo isso não seria necessário (embora não daria para fazer sem JNI também).

Definicões para a palavra promíscuo:

1 - Diz-se da pessoa que se entrega sexualmente com facilidade.
2 - Agregado sem ordem nem distinção; misturado, confuso, indistinto

Qual das definições seria a correta para esse caso? rsrsrs , desculpe mais não pude aguentar :slight_smile:

Abraços.

[quote=ViniGodoy]Java NIO - Um pouco antigo, mas cobre bem a biblioteca de NIO, Sockets não bloqueantes, channels e selectors. Dá dicas legais também.
TCP/IP Sockets in Java - Já na segunda edição, esse livro é muito bom.

Lol? Acesso ao hardware? Nem que ele quisesse trabalhar com socket em modo promíscuo isso não seria necessário (embora não daria para fazer sem JNI também).[/quote]

Qualquer api do java que não utilize acesso ao as dll do windows que por sua vez conversam SIM com o hardware(placa de rede) devem ser importadas para uso.

Tudo que se comunica por socket na sua base é provindo de uma comunicação com a placa de rede que por sua vez então que faz o acesso ao meio físico.
Em java, tudo aquilo que fornece comunicação via tcp/ip utiliza recursos do sistema operacional, no caso eu apenas quis propor uma dll alternativa as do windows.
E lembrando que, eu não disse que ele teria que fazer contato com o hardware mas sim a DLL que ele fosse importar.

O problema do programador java as vezes é querer enxergar apenas a abstração e esquecer a raiz. :wink:
abraços

É no sentido de “sem distinção”, ou “misturado indiscriminadamente”.

Michaelis
    promíscuo

       1. adj (lat promiscuu) Que consiste em partes, elementos ou indivíduos heterogêneos reunidos sem ordem.
       2. Misturado indiscriminadamente.
       3. Caracterizado por, ou que envolve mistura ou associação indiscriminada.
       4. Indiscriminado, casual, acidental: União sexual promíscua.
       5. Sem distinção: Uso promíscuo.

Fonte: Michaelis

A placa em modo promíscuo encaminha tudo o que recebe para o software, inclusive mensagens que não foram destinadas a ela. Essa distinção é feita pelo protocolo CSMA/CD (no caso da Ethernet). É nesse modo que são programados os sniffers de rede. E geralmente, o uso desse modo está restrito também ao uso de RAW Sockets.

[quote=vhmolinar]Qualquer api do java que não utilize acesso ao as dll do windows que por sua vez conversam SIM com o hardware(placa de rede) devem ser importadas para uso.

Tudo que se comunica por socket na sua base é provindo de uma comunicação com a placa de rede que por sua vez então que faz o acesso ao meio físico.
Em java, tudo aquilo que fornece comunicação via tcp/ip utiliza recursos do sistema operacional, no caso eu apenas quis propor uma dll alternativa as do windows.
E lembrando que, eu não disse que ele teria que fazer contato com o hardware mas sim a DLL que ele fosse importar.

O problema do programador java as vezes é querer enxergar apenas a abstração e esquecer a raiz. :wink:
[/quote]

Só quis dizer que o Java tem recursos de sua própria API padrão para trabalhar com sockets e o protocolo TCP/IP, não sendo necessário recorrer a JNI, ou importar qualquer biblioteca adicional.

O que ele não tem, e que realmente seria necessário utilizar bibliotecas extras, seria recursos para trabalhar em modo promíscuo (como já citei), ou com raw sockets. Isso, realmente, exigiria JNI, acesso direto ao hardware ou ao SO, etc.