Actuellement, je supporte un client avec l'architecture suivante, utilisée dans un processus de fabrication industrielle: p>
Ils ont un programme Windows exécuté sur un PC qui contrôle les machines industrielles. P> LI>
Ils ont une application propriétaire (que je maintienne pour eux) fonctionnant sur un appareil Android (essentiellement un téléphone) qui interface sans fil avec le logiciel PC sur une prise TCP, il peut donc contrôler à distance ces processus industriels. < / p> li> ol>
Qu'est-ce que le client veut maintenant est un serveur Web exécuté sur le PC et un navigateur Web intégré à l'application pour contrôler certains processus supplémentaires non contrôlés à partir de son programme Windows. p>
J'ai configuré un serveur WAMP sur le PC et une page Web d'exemple, que je peux voir sur n'importe quel navigateur sur le PC comme "localhost". Je sais comment ajouter une vue sur le navigateur Web à l'application Android via une classe WebView. p>
mais je ne sait pas strong> Comment rendre le navigateur sur le téléphone Voir le serveur WAMP sur le PC via la connexion TCP. Comment puis-je accrocher ces deux choses? p>
5 Réponses :
Eh bien, comment connectez-vous un WebBrowser à un serveur? Sur un WebBrowser de bureau, vous tapez le nom d'hôte ou l'adresse IP dans la barre d'adresses du WebBrowser. P>
Un processus similaire fonctionne pour un WebBrowser intégré, il vous suffit d'appeler la méthode loadurl code>
de votre instance webview. P>
La question la plus importante sur quel nom de réseau votre serveur Web a et prépendez http: // code>. Si le serveur reçoit une adresse IP statique, vous pouvez également l'utiliser. Cependant, vous devez vous assurer que le wamp n'écoute pas seulement sur Localhost, sinon il ne peut pas être accès à partir d'un appareil (mais ce n'est pas une question pour Stackoverflow). P>
Essentiellement, pour la machine Windows, vous devez connaître l'adresse IP. C'est l'adresse sur le réseau que d'autres périphériques utiliseront pour la contacter. Si vous avez déjà une prise TCP / IP ouverte, vous connaissez déjà cette adresse.
http est un protocole basé sur TCP. Cela fonctionne comme comme votre prise HTTP, à l'écoute par défaut pour les connexions sur le port 80. Dans la documentation, il semble que le port par défaut de WAMP est le port 80. p>
à partir de votre activité de connexion contenant le webview (à partir de ici ): p>
this.webview.loadUrl("http://ipaddress:8080/");
Ce que vous voulez (non seulement pour le serveur de wamp, mais pour XAMPP, la lampe) est une adresse IP statique que vous pouvez vous connecter à tout moment.
Une autre chose que vous avez mentionnée était des prises. Les sockets fournissent une transaction très élémentaire de données et vous devez prendre en charge tout, HTTP est un protocole de couche d'application qui est une abstraction sur la couche de transport. Navigateurs Web (populairement) utilisez HTTP. ici est la différence. p>
pour la prise Programmation Voici deux liens: link1 et < Un href = "http://androïd-er.blogspot.in/2014/02/androïd-sercerclient-example-client.html" rel = "nofollow noreferrer"> link2 . p>
L'utilisation de HTTP nécessite l'envoi d'une réponse ou d'une réponse postale au serveur, reçue probablement par PHP ou Django qui le prend à partir de là. En ce qui concerne le code. Ici vous allez. P>
pour obtenir la demande p> pour la demande postale p> analyser la réponse pour vérifier comment le serveur a répondu. La fonction de l'application devrait être de soulager l'utilisateur de ne pas lui fournir une solution qui existe déjà. Je vous suggérerais de l'utilisation de webview (affichez simplement les informations pertinentes organisées correctement). P> EDIT: strong>
Voici une bonne explication pour http vs TCP . P> p>
Certaines informations de base que vous devriez être au courant de forte> lorsque ce PC se connecte à votre téléphone, un Interface réseau doit être utilisé, par exemple, wifi ou Ethernet. Notez également que dans le Autre côté, une fois qu'une interface est connectée, elle serait attribuée à un adresse IP . Je suppose que votre téléphone est connecté à ce PC via une interface WiFi, donc dans ce cas, deux interfaces sont utilisées. P> p> et les deux ont leur adresse IP unique. adresses. Si vous souhaitez vous connecter de votre téléphone à ce PC, connaissiez l'adresse IP de l'interface WLAN de ce PC. P> Si votre PC est basé sur Linux, vous pouvez écrire dans Android WebView strong> p> Cette vue fournit une méthode appelée où p> Par conséquent, si nous supposons que l'adresse IP de ce PC est Ou p> localhost code> est menti sur Interface de bouclage . Il convient de noter que
une interface code> est uniquement accessible dans un périphérique lui-même (c'est-à-dire que d'autres périphériques ne peuvent pas communiquer avec
bouclack code> d'un autre périphérique). P>
wlan code> interface de ce PC li>
wlan code> interface de votre téléphone. LI>
ul>
ifconfig code> et Consultez cette adresse IP dans
Inet Addr CODE> champ (sous
Section WLAN0 CODE>). Pour les machines Windows, lisez Cette page . P>
loadurl code>
utilisé pour récupérer le contenu HTML à partir de machines distantes. La chaîne que vous devriez passer à cette méthode est formée comme suit: p>
ip_address code>
: adresse IP de la machine distante. (Dans votre cas, celui que vous avez trouvé à l'étape précédente) li>
port_number code>
: chaque machine peut écouter sur différents ports à des fins différentes (par exemple, HTTP, FTP, SSH, ...). Le port par défaut pour HTTP est 80. LI>
ul> 192.168.0.1 code>, vous devriez alors avoir: p>
J'ai eu le même problème lorsque j'ai construit mon serveur Wamp et montrez la base de données de mon téléphone Android.
Le problème est que le wamserver est un lieu localhost et le moyen unique de se connecter avec WAMP est via WiFi, car utilise la même chose. Infrastructure. P>
Si vous souhaitez vous connecter à votre infrastructure, vous devez créer un hébergement public et réessayer. P>
Montrez-nous le logcat et consultez si vous avez la permission sur votre fichier manifeste. < / p>
Le serveur doit avoir une adresse, ils doivent figurer sur le même réseau et le serveur doit être accessible à partir de ce réseau.