2009-12-01 4 views
1

J'ai 2 PC Windows connectés sur un réseau WLAN ad-hoc.
En utilisant cette connexion existante puis-je communiquer entre ces pc via des sockets?
Puis-je ouvrir une socket serveur sur un PC et faire de l'autre PC un client et me connecter à l'autre pc puis envoyer et recevoir des données via cette connexion?
Ai-je besoin d'une API spécifique pour cela ou puis-je simplement utiliser java.net.Socket et java.net.ServerSocket?Java Sockets sur WLAN?

Répondre

5

Bien sûr, vous pouvez. Il y a un réseau IP sur la connexion WLAN, et rien ne vous empêche d'établir une connexion TCP.

En ce qui concerne les prises sont c'est pas différent à une connexion filaire (Ethernet), la différence se termine à Data-Link layer

3

Bien sûr, vous pouvez utiliser (Server) Sockets. Les sockets sont un concept du protocole TCP (couche OSI 4), qui fonctionne au-dessus du protocole IP (couche OSI 3), qui fonctionne elle-même sur WLAN ou Ethernet (couche OSI 2), qui fonctionne sur un lien physique (ondes radio pour WLAN, câbles ethernet pour ethernet).

Les implémentations des couches OSI sont remplaçables (ou mieux: doivent être remplaçables). Cela n'a donc pas d'importance si vous utilisez WLAN, Ethernet ou autre chose, tant que vous ne passez pas en dessous de la couche 3 (ce qui n'est pas possible avec Java de toute façon).

Jetez un oeil à la Wikipedia article pour plus d'informations

+0

Merci à Efraim et vous pour le lien, que je déplace la couche OSI je vois que la couche 7 a le HTTP à la couche d'application, il est une demande/réponse protocole n'est-ce pas? Maintenant, existe-t-il une sorte de protocole push à ce niveau supérieur ou dois-je vivre avec des sockets de bas niveau pour le moment? –

+0

Java lui-même n'a qu'un support limité pour les protocoles de niveau 7. HTTP est seulement le plus commun et est supporté par Java directement. Java prend en charge RMI, HTTP, FTP et JMX (peut être incomplet). Il existe des API qui prennent en charge d'autres protocoles, tels que les structures XMPP ou de sérialisation, comme les tampons de protocole Google. Un bon point de départ est Apache MINA ou JBoss Netty. Ce sont des frameworks de réseau et certains projets s'appuient dessus (comme Vysper comme serveur XMPP). – Hardcoded