1 votes

Communication UDP entre PC et Android via ethernet

1. Je teste avec un Nexus 5 rooté fonctionnant sous Lollipop 5.1.

2. Et ce, sans connexion wifi.

J'essaie d'envoyer des paquets UDP entre un PC et un appareil Android avec un câble otg et un dongle ethernet. Lorsqu'il est connecté, le PC pense que l'Android est un réseau non identifié (pas d'accès internet) et l'Android reconnaît l'appareil comme eth0 avec une IP de 0.0.0.0.

eth0   UP   0.0.0.0

J'ajoute une IP à l'eth0 en exécutant le script unix suivant :

#!/bin/sh
netcfg eth0 up
ifconfig eth0 192.168.1.200 netmask 255.255.255.0
route add default gw 192.168.1.1 dev eth0
ping -c 1 192.168.1.1

Après avoir exécuté le script, eth0 apparaît dans la ligne de commande comme :

eth0   UP   192.168.1.200

J'utilise wireshark pour suivre les paquets et lorsque j'essaie d'ouvrir une interface entre le PC et Android, j'obtiens une erreur comme suit :

(Erreur d'ouverture de l'adaptateur : Le système ne trouve pas le périphérique spécifié. (20)).

De plus, lorsque j'essaie d'envoyer un PING au PC à partir d'Android, j'obtiens 100% de paquets perdus.

Il semble donc que je n'aie pas de connexion entre le PC et Android. Toute contribution à ce sujet serait très utile.

0voto

Alexander Temerev Points 226

Je pense que le reverse tethering résoudrait votre problème.

Les étapes du tethering inversé d'Android :

Remarque : ne fonctionne que sur un téléphone Android enraciné.

  1. Connectez le dispositif Android via USB.

  2. Activez la connexion USB. Pour ce faire, allez à Paramètres → Plus... → Tethering et hotspot mobile → Tethering usb .

  3. Sur la machine hôte, tapez :

    $ ifconfig usb0 10.42.0.1 netmask 255.255.255.0 
    $ echo 1 > /proc/sys/net/ipv4/ip_forward 

    La commande pour sudo sera :

    $ sudo 'echo 1 > /proc/sys/net/ipv4/ip_forward' 
  4. Sur l'appareil Android (pour cette étape, vous devez installer ADB sur le PC hôte), tapez :

    $ adb shell 
    $ su 
    $ netcfg rndis0 dhcp

    S'il n'obtient pas l'adresse IP, attribuez-la manuellement :

    $ netcfg rndis0 10.42.0.2 netmask 255.255.255.0 
    $ route add default gw 10.42.0.1 dev rndis0 

Maintenant, l'internet fonctionne dans le téléphone Android.

Pour vérifier, essayez la commande ping www.google.com .

Ça marche pour moi.

0voto

CharlesB Points 27070

[Si vous souhaitez connecter les deux appareils via un réseau IP, ils doivent se trouver dans le même sous-réseau. Votre PC s'attribue lui-même une adresse IP car il ne trouve pas de serveur DHCP. Essayez d'attribuer statiquement à votre PC l'adresse 192.168.1.1 avec le même sous-réseau 255.255.255.0.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X