javascript - 在浏览器中使用 Javascript 端口敲击 UDP

标签 javascript html browser webrtc

所以我尝试从 javascript 发送端口敲门序列。

TCP 部分对于 websockets 来说已经足够简单了。

我读到,WebRTC 是浏览器提供的最接近发送 UDP 数据包的功能...但是 WebRTC 仅仅为了尝试发送 UDP“敲门”就需要消化很多内容。

是否有可能使用 WebRTC 通过 UDP“敲门”?如果是这样,请提供一个简单的例子。我只是在寻找一个简单的工作示例。 IE。要通过 TCP“敲门”,您可以使用以下命令:

var sock = new WebSocket("ws://"+ host +":"+ port);

最佳答案

实际上可以使用浏览器发送UDP数据包。

您可以编写一个 Chrome 扩展程序(应用程序),它可以让您访问 https://developer.chrome.com/apps/sockets_udp (manifest.json 中的 "sockets": {...})。

或者,就 WebRTC 而言:

var pc = new webkitRTCPeerConnection(
    { "iceServers": [{ "url": "stun:localhost:1234" }] }
);

pc.createOffer(function (sessionDescription) {
    pc.setLocalDescription(sessionDescription);

}, function(error) {
    alert(error);
}, { 'mandatory': { 'OfferToReceiveAudio': true, 'OfferToReceiveVideo': true } });

还有一个快速的 ruby​​ 脚本

需要“套接字”

$port = 1234

t = Thread.start do
  server = UDPSocket.open
  server.bind(nil, $port)
  4.times do
    a = server.recvfrom(12364)
    p a
    p server.send "ping", 0, a[1][2], a[1][1]
  end
end

t.join

["\x00\x01\x00\x00!\x12\xA4B0PgJcgcqalrO", ["AF_INET", 51881, "192.168.0.27", "192.168.0.27"]] 4 ["\x00\x01\x00\x00!\x12\xA4Bbmfxf2ABsZws", ["AF_INET", 53092, "192.168.0.27", "192.168.0.27"]] 4 ["\x00\x01\x00\x00!\x12\xA4B0PgJcgcqalrO", ["AF_INET", 51881, "192.168.0.27", "192.168.0.27"]] 4 ["\x00\x01\x00\x00!\x12\xA4Bbmfxf2ABsZws", ["AF_INET", 53092, "192.168.0.27", "192.168.0.27"]]

我不确定这是否符合“端口敲门序列”的条件。

引用号:https://www.webrtc-experiment.com/docs/webrtc-for-beginners.html

关于javascript - 在浏览器中使用 Javascript 端口敲击 UDP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556937/

相关文章:

javascript - 在某些零售网站上围绕某些美元值(value)进行报价的目的是什么?

css - 使用内联 CSS 更改输入的 HTML5 占位符颜色

html - htaccess 在 CHROME 中重写两次

html - 从浏览器中删除滚动条

javascript - 数据库 Array to string converted divided |符号

javascript - 不可见/隐藏的 Canvas 不会显示在 Chrome 中

javascript - noConflict JQuery 的 Drupal 问题

jquery - 将 div 扩展到父容器之外,同时将子 div 保留在容器内

javascript - 浏览器中动画帧的任务

html - 创建用于更改主题而不是浏览器页面样式 html 的开关