通过套接字查看Web服务器...

use*_*117 10 android tcp wamp

目前,我支持具有以下架构的客户端,用于工业制造过程:

  1. 他们在PC上运行Windows程序来控制工业机械.

  2. 他们有一个在Android设备(基本上是手机)上运行的专有应用程序(我为他们维护),它通过TCP套接字与PC软件无线连接,因此它可以远程控制这些工业流程.

客户现在想要的是在PC上运行的Web服务器和内置于应用程序中的Web浏览器,以控制一些不受其Windows程序控制的其他进程.

我在PC上设置了一个WAMP服务器和一个示例网页,我可以在PC上的任何浏览器上看到它作为"localhost".我知道如何通过WebView类将Web浏览器视图添加到Android应用程序.

但我不知道如何让手机上的浏览器通过TCP连接看到PC上的WAMP服务器.我如何将这两件事挂钩?

fro*_*tto 6

您应该注意的一些基本信息

当该PC连接到您的手机时,必须使用底层网络接口,例如WiFi或以太网.还要注意,它localhost是在loopback接口上撒谎.应该注意,loopback接口只能在设备本身访问(即其他设备不能与loopback另一设备通信).

另一方面,一旦连接了接口,就会为其分配IP地址.我假设您的手机通过WiFi接口连接到该PC,因此在这种情况下,两个接口正在使用中.

  • wlan 该PC的界面
  • wlan 你手机的界面.

在此输入图像描述

两者都有自己独特的IP地址.如果要从手机连接到该PC,您应该知道该PC的wlan接口的IP地址.

如果您的PC是基于Linux的,您可以ifconfiginet addr字段中编写并查看该IP地址(在" wlan0部分"下).对于Windows机器,请阅读此页面.


在Android WebView中

此View提供了一种方法loadUrl,用于从远程计算机获取HTML内容.您应该传递给此方法的字符串格式如下:

http://IP_ADDRESS:PORT_NUMBER
Run Code Online (Sandbox Code Playgroud)

哪里

  • IP_ADDRESS:远程机器的IP地址.(在您的情况下,您在上一步中找到的那个)
  • PORT_NUMBER:每台机器可以在不同的端口上侦听以用于不同的目的(例如HTTP,FTP,SSH,...).HTTP的默认端口是80.

因此,如果我们假设该PC的IP地址是192.168.0.1,那么您应该:

webView.loadUrl("http://192.168.0.1:80");
Run Code Online (Sandbox Code Playgroud)

要么

webView.loadUrl("http://192.168.0.1");
// Because 80 is the default port number for HTTP
Run Code Online (Sandbox Code Playgroud)


Rob*_*ert 2

那么,如何将网络浏览器连接到服务器?在桌面 Web 浏览器上,您可以在 Web 浏览器的地址栏中键入主机名或 IP 地址。

类似的过程适用于嵌入式 Web 浏览器,您只需调用loadUrlWebView 实例的方法即可。

更重要的问题是您的网络服务器有什么网络名称并在前面加上http://。如果服务器获得静态 IP 地址,您也可以使用它。但是,您必须确保 WAMP 不仅在本地主机上侦听,否则无法从任何设备访问它(但这不是 Stackoverflow 的问题)。