目前,我为一个客户提供以下架构支持,该架构用于工业制造过程:
他们有一个在控制工业机械的 PC 上运行的 Windows 程序。
他们有一个专有应用程序(我为他们维护)在 Android 设备(基本上是手机)上运行,该应用程序通过 TCP 套接字与 PC 软件无线连接,因此它可以远程控制这些工业过程。
客户现在想要的是一个在 PC 上运行的网络服务器和一个内置于应用程序中的网络浏览器,以控制一些不受他的 Windows 程序控制的额外进程。
我在 PC 上设置了一个 WAMP 服务器和一个示例网页,我可以在 PC 上的任何浏览器上看到它作为“本地主机”。我知道如何通过 WebView 类将网络浏览器 View 添加到 Android 应用程序。
但是我不知道如何让手机上的浏览器通过TCP连接看到PC上的WAMP服务器。我如何将这两件事联系起来?
最佳答案
您应该了解的一些基本信息
当该 PC 连接到您的手机时,底层 network interface必须使用,例如,WiFi 或以太网。另请注意,localhost 位于 loopback interface 上.需要注意的是,loopback接口(interface)只能在设备本身访问(即其他设备无法与另一设备的loopback通信)。
在另一边,一旦一个接口(interface)被连接,它就会被分配一个IP address。 .我假设您的手机通过 WiFi 接口(interface)连接到该 PC,因此在这种情况下使用了两个接口(interface)。
wlan 该 PC 的接口(interface)wlan 接口(interface)。
并且两者都有其唯一的 IP 地址。如果你想从你的手机连接到那台电脑,你应该知道那台电脑的 wlan 接口(interface)的 IP 地址。
如果您的 PC 是基于 Linux 的,您可以编写 ifconfig 并在 inet addr 字段中看到该 IP 地址(在 wlan0 部分下) .对于 Windows 机器,阅读 this page .
在 Android WebView 中
此 View 提供了一个名为 loadUrl 的方法用于从远程机器获取 HTML 内容。您应该传递给此方法的字符串格式如下:
http://IP_ADDRESS:PORT_NUMBER
在哪里
IP_ADDRESS :远程机器的IP地址。 (在你的情况下,你在上一步中找到了)PORT_NUMBER :每台机器都可以为不同的目的(例如 HTTP、FTP、SSH 等)监听不同的端口。 HTTP 的默认端口为 80。因此,如果我们假设该 PC 的 IP 地址是 192.168.0.1,那么您应该:
webView.loadUrl("http://192.168.0.1:80");
或者
webView.loadUrl("http://192.168.0.1");
// Because 80 is the default port number for HTTP
关于android - 通过套接字查看 Web 服务器。 . .,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30511254/
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我正在使用puppet为ruby程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
我在理解Enumerator.new方法的工作原理时遇到了一些困难。假设文档中的示例:fib=Enumerator.newdo|y|a=b=1loopdoy[1,1,2,3,5,8,13,21,34,55]循环中断条件在哪里,它如何知道循环应该迭代多少次(因为它没有任何明确的中断条件并且看起来像无限循环)? 最佳答案 Enumerator使用Fibers在内部。您的示例等效于:require'fiber'fiber=Fiber.newdoa=b=1loopdoFiber.yieldaa,b=b,a+bendend10.times.m
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
几个月前,我读了一篇关于rubygem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题: