10
votes

Voir un serveur Web sur une prise. . .

Actuellement, je supporte un client avec l'architecture suivante, utilisée dans un processus de fabrication industrielle:

  1. Ils ont un programme Windows exécuté sur un PC qui contrôle les machines industrielles.

  2. 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>

    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.

    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.

    mais je ne sait pas 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?


1 commentaires

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.


5 Réponses :


2
votes

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.

Un processus similaire fonctionne pour un WebBrowser intégré, il vous suffit d'appeler la méthode loadurl de votre instance webview.

La question la plus importante sur quel nom de réseau votre serveur Web a et prépendez http: // . 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).


0 commentaires

1
votes

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/");


0 commentaires

2
votes

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.

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 .

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.

pour obtenir la demande xxx

pour la demande postale xxx

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).

EDIT: Voici une bonne explication pour http vs TCP .


0 commentaires

6
votes

Certaines informations de base que vous devriez être au courant de

lorsque ce PC se connecte à votre téléphone, un Interface réseau doit être utilisé, par exemple, wifi ou Ethernet. Notez également que localhost est menti sur Interface de bouclage . Il convient de noter que une interface 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 d'un autre périphérique).

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.

  • wlan interface de ce PC
  • wlan interface de votre téléphone.

    Entrez la description de l'image ici

    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.

    Si votre PC est basé sur Linux, vous pouvez écrire ifconfig et Consultez cette adresse IP dans Inet Addr champ (sous Section WLAN0 ). Pour les machines Windows, lisez Cette page .


    dans Android WebView

    Cette vue fournit une méthode appelée loadurl 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: xxx

    • ip_address : adresse IP de la machine distante. (Dans votre cas, celui que vous avez trouvé à l'étape précédente)
    • port_number : 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.

      Par conséquent, si nous supposons que l'adresse IP de ce PC est 192.168.0.1 , vous devriez alors avoir: xxx

      Ou xxx


0 commentaires

0
votes

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.

Si vous souhaitez vous connecter à votre infrastructure, vous devez créer un hébergement public et réessayer.

Montrez-nous le logcat et consultez si vous avez la permission sur votre fichier manifeste. < / p> xxx


0 commentaires