从浏览器建立任意 TCP 连接 [重复]
Posted
技术标签:
【中文标题】从浏览器建立任意 TCP 连接 [重复]【英文标题】:Make arbitrary TCP connection from browser [duplicate] 【发布时间】:2019-01-06 19:21:38 【问题描述】:我的网络应用程序需要连接到网络上的本地设备才能获取数据。
设备具有静态 IP 地址并通过 P03 协议进行通信。当我使用 Telnet 连接时,设备会在我的控制台中返回纯文本。
我需要在浏览器中使用 javascript 做同样的事情。当用户点击一个按钮时,它应该通过 TCP 连接到192.168.0.1:8000
并在页面上显示接收到的文本数据。
问题在于这是一个 Web 应用程序。可以做客户端吗?
(我也愿意接受除 JavaScript 之外的其他建议。)
【问题讨论】:
“咨询”不是标准的技术术语。你什么意思。 “填写一个字段” - 什么样的字段? 您是在问如何发出 HTTP 发布请求吗? 我编辑了帖子,更好地解释了自己 无论这个 P03 协议是什么,如果它不是基于 HTTP 的,那么您可能很难尝试从 Javascript 处理它。另一方面,如果它是一个常规的 HTTP 请求,那么XmlHttpRequest
就是你所需要的。
【参考方案1】:
不幸的是,您不能只连接到任何 TCP 套接字。浏览器可以建立连接,但它必须是以下协议之一:
HTTP (HTTP[S] 1.0/1.1/2) Web Socket(另一种实际运行在 HTTP 之上的应用协议) WebRTC(用于点对点,也可用于客户端-服务器通信,但在这里没有用处)一种方法是运行各种代理。您需要创建一个代理来接受来自浏览器的 Web Socket 连接,然后将发送/接收的数据中继到此 TCP 服务器。缺点是这需要服务器。
另一种方法是制作浏览器扩展。另见:https://***.com/a/17567373/362536
【讨论】:
@user1283776 我回滚了你的编辑...我不想在这里添加混淆,暗示 Web Sockets 可以以某种方式与 HTTP 上下文断开连接。以上是关于从浏览器建立任意 TCP 连接 [重复]的主要内容,如果未能解决你的问题,请参考以下文章