【问题标题】:how do i send data from a webpage to port in web server?如何将数据从网页发送到 Web 服务器的端口?
【发布时间】:2011-07-17 01:46:24
【问题描述】:

这是将数值数据从 javscript 网页发送到 Web 服务器端口的最佳方法。我有一个服务器套接字程序在服务器上运行并监听端口 5000。 我需要将数据从网页发送到端口?哪种方法最好?

场景是这样的。

我有一个使用 XAMPP 在我的笔记本电脑上托管的 Web 服务器上运行的 C 套接字程序。 它正在监听端口 5000,而且我有我的 IP 地址。在网页中, 我正在运行一个 javascript,当用户按下任何箭头键时,我需要将一个值发送到此端口.. 像 up -1 , down -2 等 ...

【问题讨论】:

    标签: java javascript c sockets


    【解决方案1】:

    目前没有任何方法可以以便携式方式执行此操作。某些浏览器支持the WebSocket standard,这使您可以有限地访问套接字,但目前在除 Chrome 和 Safari 之外的任何常见浏览器中都不可用。 Flash 播放器支持单独的XMLSocket 协议,如果 Flash 插件可用,您也可以使用该协议。但是,这些协议都不支持对套接字的原始访问——都需要一些初始协商和数据包帧。

    【讨论】:

      【解决方案2】:

      由于您的 Web 服务器运行在与套接字程序不同的端口上,因此浏览器中的 Javascript 因Same Origin Policy 而无法直接向套接字程序发出请求。但是,有多种方法可以绕过此限制。亚历克斯塞克斯顿有一个lengthy overview 的所有不同方法。但是,所有这些方法都要求您的套接字程序也运行 http 协议。

      Socket.IO 似乎非常适合您正在尝试做的事情,但您可能需要放弃您的 C 程序。

      【讨论】:

      • 感谢您的信息...您能给我一个更好的解决方案吗... java 程序正在运行并监听端口...当用户按下箭头键时,我需要将值 1、2、3、4 发送到端口...。
      【解决方案3】:

      从网页打开网络套接字连接的唯一方法是使用 Java 或 Flash 应用程序建立二进制套接字连接。然后,您可以使用 java 脚本将数据传递给应用程序,该应用程序将连接并将其转发到服务器。

      或者,您可以使用一些服务器端代码和 AJAX 来代理连接并转发数据。 第二个选项不依赖于安装任何浏览器插件,我认为更容易实现。它还能够转发到不在 Web 服务器本身上的端口,因为它不受浏览器安全限制。

      【讨论】:

      • Java/Flash 不是唯一的方法,请参阅黄昏的回答。
      • 同意,仔细阅读 WebSecets 的规范后,原始二进制连接是可能的。
      【解决方案4】:

      我猜想向服务器上的所需端口发出一个 ajax 请求...可以解决该请求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-29
        相关资源
        最近更新 更多